解决PlayStation商店网页版无法连接到服务器18.xxx错误、PS App无法登录

临近PS5发售,索尼对PlayStation Store网页版和PS App都进行了大的更新,包含UI和功能,然而我已经大半年几乎无法正常登录网页版ps商店了,无论是win10的Chrome还是安卓的Chrome,每次登录都是提示无法连接到服务器,然后一串长长的(18.xxxx.xxxx.xxx)错误码,安卓版App由于登录也是调起网页进行登录,因此遇到同样的问题,然而我Mac的Chrome却一切正常,甚至win10和安卓的其他浏览器也是ok的,只有Chrome和PS的那几个App使用WebView让人崩溃。。。

这次更新之后,我试了下问题依旧,甚至PS App连登录页面都进不去,直接提示无法登录错误,而且似乎有不少人都遇到这个问题,于是尝试解决这俩问题

PlayStation Store网页版无法连接到服务器

先说一下,这个问题与cookie有关系,具体确切原因我也没有确定,但是能够解决问题

img

只有chrome无法登录而其他浏览器正常,于是我尝试了基于Chromium的最新版Edge,结果也是正常的,于是打开控制台,对比二者的差别,于是发现了Chrome在登录的时候会有一个请求被403了,请求链接是ca.account.sony.com/api/v1/ssocookie

image-20201101121039423

看样子似乎和cookie有什么关系,网上搜索了一下,也有其他人不同的浏览器遇到了同样问题,有人这样解释

Reproduced on older Chromium v74 while works in newer browser version. I’ve send request to Galaxy to update their inner browser version. It may help but not for sure.

Problem is because we’re rejected with 403 while requesting auth cookie

https://auth.api.sonyentertainmentnetwork.com/2.0/ssocookie

Akamai server blocks requests from older browser for some reason maybe because of SameSiteCookie policy, or CORS, or maybe because Akamai’s anti-bot script does not like Galaxy browser.

Login works when user requests are handled by direct PSN server (nginx header)
Login does not work when requests are handled by Akamai’s load balancer.
This is why it happen sometimes, not always.

Known workarounds:

use VPN
wait some time (like a day) and try to login again when there is smaller traffic.

似乎并不能解决我的问题,我的Chrome是最新版,并且网络也是ok的,也看到了另外一个描述,Chrome 80版本之后cookie 的 SameSite 属性默认值由 None 变为 Lax,造成了一些访问跨域 cookie 无法携带的问题,尝试修改了Chrome相关设置,依然无效,这时候一条微博引起我的注意

image-20201101115220601

于是进行了尝试,EditThisCookie插件拷贝了一下Edge登录页面的cookie值复制到Chrome登录页面上(直接拷贝Edge登录成功的cookie应该也是ok的,下图为截取的登录进去的cookie),于是再次登录,果然这次终于成功了😭️

image-20201101121306201

问题已经知道了,PC可以很方便的修改cookie,但是安卓端并没有方便的浏览器修改cookie插件,怎么办?还是有方法的,安卓Chrome的cookie是写到本地目录里面,并且是sqlite数据库文件,存储路径为/data/data/com.android.chrome/app_chrome/Defaule/Cookie,我们可以用SQLite编辑器打开它进行修改,于是先要找到一个正常的cookie,Edge,决定就是你了,下载登录,啊咧

image-20201101122529176

这尼玛,算了,咱换一个,换上学生时代经常折腾而现在许久没有使用的Firefox吧,嗯,这次正常登录了,Firefox的cookie路径是/data/data/org.mozilla.firefox/files/mozilla/xxxx.default/cookies.sqlite,直接标明是个sqlite文件,中间是路径xxxx是随机字符串,打开之后同样将psn登录所需的cookie内容拷贝复制到Chrome的cookie文件里,这里强烈建议在PC端就行操作,手机端太麻烦了,我开了俩sqlite应用,一个查看,一个修改,手忙脚乱,弄完之后才想起了为啥我不用PC搞这玩意😓️,弄好之后,把Chrome停止掉,重新打开,登录,OK,大功告成!

image-20201101123200655

安卓PS App无法登录

先说一下新版PS App登录需要的条件

  • 具有Google服务并能正常使用
  • 第一次登录需通过SafetyNet检测
  • 第一次登录需科学上网(不一定是必须条件,打不开登录页面可以试试)

不然就会出现如下错误

image-20201101131626953

我新旧两版App都是无法登录,只是问题不太一样,旧版问题其实和Chrome问题一样,App通过WebView调起登录页面,而WebView是Chrome实现的,但是cookie文件存储在App自己的安装目录,而新版打开直接提示无法登录退出,推测这个可能和我Root了有关,尝试Magisk Hide和随机包名并未解决,于是暂时放弃,先搞定旧版App。

按照同样的套路,找到PS App的Cookie文件/data/data/com.scee.psxandroid/app_webview/Default/Cookie,同样进行修改,但是这次却没有成功。于是我换了个思路,PC端使用安卓模拟器成功登录App,拷贝出cookie,顺带一并拷贝登录用户数据库文件/data/data/com.scee.psxandroid/databases/signin_user.db,覆盖之后,停止应用,重新打开,由于读取了登录用户数据,不需要登录就直接进去了,但是旧的App就快要停用了,能登录似乎也不长久,于是继续搜索新版App的问题。

最终在P9看到网友回复,新版PS App初次打开需要检测SafetyNet,我擦,Sony你在搞啥,忒缺德了吧

image-20201101125544021

好吧,解决掉这个试试,SafetyNet检测各个手机状况不同,可以自行查询,我是临时禁用了所有Magisk模块重启之后就OK了,然后重新下载新版PS App,终于弹出了熟悉的登录页面,而当我又以为会再次无法连接到服务器需要修改cookie的时候,这次竟然直接登录上了🙂️,好吧,省事了,废了这么大劲终于搞定了,这时候可以再把Magisk模块启用,因为登录上就不会再检测SafetyNet了。

最后要吐槽一句Sony这新的PlayStation Store网页版和PS App的UI设计真是一言难尽,功能也称不上好用,不知道产品经理是什么脑回路(*  ̄︿ ̄)。

image-20201101131429774

image-20201101131240536