当前位置:网站首页 > 更多 > 站长帮 > 正文

[网站建设] 解决oneindex显示空白页/白屏问题

作者:CC下载站日期:2022-05-24浏览:103分类:站长帮

最近使用的oneindex出现白屏了,总是一段时间会出现,之前搜索过解决方案,没有找到一个说明问题原因的答案,于是自己动手试试。如果你不需要了解这个过程直接看后面修改方法。

思路

oneindex出现白屏后,我尝试在postman上使用base.php里面的refreshtoken重新获取accesstoken,提示refreshtoken是2月多创建的,refreshtoken过期了,算一下refreshtoken是有限期大概是三个月。这时我就重新捋了一下oneindex的授权过程:

1)在https://aad.portal.azure.com创建一个应用程序,获得一组应用程序ID/密钥SK,设置回调地址,配置权限(一般好像给委托权限【需要账号登录】,给文件读写、离线、用户资料权限),安装时使用。

2)安装时账号登录授权获取一个code →→用到 微软oauth接口+应用程序ID+权限+回调地址

3)程序使用 code, 获取 refreshtoken,这个refreshtoken保存在config/base.php里面 →→用到 微软oauth接口+应用程序ID+SK+ 回调地址 + code

4)程序使用 refreshtoken, 获取 accesstoken和一个新的refreshtoken,这个accesstoken和新的refreshtoken保存在config/token.php里面 →→用到 微软oauth接口+应用程序ID+SK + 回调地址 + refreshtoken

5)程序使用 accesstoken获取文件 →→用到微软graph接口+ accesstoken

6)刷新文件,程序检测config/token.php里面过期时间,小于600就刷新token,重复第四步的过程(使用base.php里面的refreshtoken)

问题就出现在这个过期的refreshtoken上,之前一直听说refreshtoken长期有效,用获取新的accesstoken,却没注意refreshtoken获取accesstoken的过程也是会生成新的refreshtoken,而oneindex并没有把新的refreshtoken写到base.php用于下次刷新,一直使用第一次授权时的refreshtoken。这就好办,把刷新后的refreshtoken写进base.php应该就可以解决了。

解决

修改lib/onedrive.php,查找 config(‘@token’, $token);

在下面加一行 config(‘refresh_token’, $token[‘refresh_token’]);

暂无评论,来添加一个吧。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

请填写验证码
请先 登录 再评论,若不是会员请先 注册