Closed JadeVane closed 3 years ago
Constants.java中的github登陆token修改了吗
都改了
看一下你的 GITHUB_REDIRECT_URI ,和github上的Authorization callback URL是不是一致的
GITHUB_REDIRECT_URI = "https://domain.com/auth/github/callback"
,登录时在 chrome 内显示“登录成功“字样,但未跳转到客户端musiclake://oauth
为 callback url
,成功跳转到客户端,但显示登录超时第2点是OK的,显示登陆超时是应该是登陆接口问题。 因为这边认证成功后,还需要去调用自建服务器的登陆接口。
那自建服务器的接口要填哪里去
也是在Constants.java,有一个BASE_PLAYER_URL,这个需要改成你自己服务器的域名
这个已经改成 API 的地址了,总共改了以下几项:
GITHUB_CLIENT_ID = "https://musiclake.xxx.com/";
GITHUB_CLIENT_SECRET = "https://xxx.vercel.app/";
BASE_PLAYER_URL = "Iv1.xxxxxxxxxxxxxx";
BASE_NETEASE_URL = "xxxxxxxxxxxxxxxxxxxxxxxxxx";
这个得看具体的错误日志,错误日志打印还是标题的那个提示吗?
对,原本就是这样设置的。
日志可以在哪看到?
在 github 上添加了 musiclake://oauth 为 callback url,成功跳转到客户端,但显示 登录超时
。
能成功跳转到客户端,说明登陆github应该已经成功了,只是登陆play-be
后台接口失败了,登录超时
是后台接口返回的数据,客户端只是提示而已。
优先看后台接口是否正常,github登陆接口auth/github/android
,参数:网页回调到app的值access_token
.是否请求成功。
尝试加入日志打印 console.log('debug', accesstoken)
,可能是下面代码标识处出了问题,因为在加在这行的前面可以在客户端提示 accesstoken is not defined
,但是放在后一行就没有任何显示了
async (req: express.Request, res: express.Response, next: express.NextFunction) => {
validationResult(req).throw() // <-- 这里出了问题
// 获取用户信息
const data = await axios.get('https://api.github.com/user', {
headers: {
Authorization: `token ${req.query.access_token}`,
},
})
尝试加入日志打印
console.log('debug', accesstoken)
,可能是下面代码标识处出了问题,因为在加在这行的前面可以在客户端提示accesstoken is not defined
,但是放在后一行就没有任何显示了async (req: express.Request, res: express.Response, next: express.NextFunction) => { validationResult(req).throw() // <-- 这里出了问题 // 获取用户信息 const data = await axios.get('https://api.github.com/user', { headers: { Authorization: `token ${req.query.access_token}`, }, })
validationResult(req).throw() 这个应该就是检查请求参数的结构。
把这个req这个打印出来看看,或者打印console.log('debug', ${req.query.access_token}
) 。
在每一行都试过打印
console.log('debug', `${req.query.access_token})`
服务端都没有日志显示,只有客户端显示 timeout
在每一行都试过打印
console.log('debug', `${req.query.access_token})`
服务端都没有日志显示,只有客户端显示
timeout
你看看手机端能不能访问你的服务器接口,估计是接口请求超时了,请求还没有到服务器,所以服务端没有日志显示。
我这边也试过在本地局域网中,因为手机访问github访问不到,然后开了代理,然后访问不到服务器,提示了timeout。 关了代理,就能够请求成功了。
如果将日志输出放在 validationResult(req).throw()
前一行,会在客户端收到 accesstoken is not defined
的提示,所以应该是有连到服务器的,我之前也是开了代理,试着关闭了代理发现也没用
可能是配置有问题,我把配置贴在这里,看看能否提供一些线索
可能是配置有问题,我把配置贴在这里,看看能否提供一些线索
Constants.java
试试把地址改成http的,不用https
改成 http 后登录上了,但是打开歌单显示错误
改成 http 后登录上了,但是打开歌单显示错误
自建歌单吗?请求的数据集发一下,估计是后台版本不一样,数据结构和客户端数据解析没对应上
develop
分支的最新代码,player-be
也是最新的,应该对得上
- 是从 PC 端导入的网易云歌单,在 PC 端可以正常播放
- 编译 apk 用的是
develop
分支的最新代码,player-be
也是最新的,应该对得上- 怎么获取这些请求的数据集
可能是导入的歌单问题,客户端的这个album
是个对象,而接口返回的是一个字符串,解析异常,看下这个接口请求返回的数据,这个应该在后台可以打印的,或者你可以通过抓包软件抓取一下接口返回数据
Describe the bug 已自建 player-be 作为云歌单服务,PC 端已正常登录,但手机端在浏览器完成 Github 的帐号认证后,提示
Smartphone (please complete the following information):