前言
因为最近优化网站,方便一些用户,所以加入了网站第三方登录的功能,但是刚接入就发生了回调失效的问题,本篇文章针对CDN引起的第三方登录进行教程
开始之前
![图片[1]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法](https://www.lequxiang.com.cn/view.php/a45d232a469056e75704b8276435b51f.png)
![图片[2]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法](https://www.lequxiang.com.cn/view.php/474ee928525dc004c97b85340f1094ce.png)
我们可以发现QQ已经加载出登录页面但是调用登录的地方依旧是空白,且刷新也没有用,后台权限也是正常的,我翻阅了QQ互联的文档也没有解决的方案,于是我去问了某些大佬如何解决这个问题,但是也不了了之,于是我自己开始琢磨,发现除了QQ,gitee也有相同的问题
![图片[3]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法](https://www.lequxiang.com.cn/view.php/ae1bdab57b7f0129c677eef30bab0f0c.png)
查找错误
后面我是用gitee进行模拟登录,发现state绑定信息失败
,也就是说state变量是错误的,根本没有获取到返回的值
cdn回源跟随
默认情况下,CDN 节点未命中缓存,请求回到源站时,如果源站响应了一个 301
或 302
跳转状态码,则 CDN 节点不会缓存这个状态码,而是直接把状态码响应给客户端,由客户端跳转到源站指定的跳转地址。
开启回源跳转跟随配置后,CDN 节点回源时如果遇到源站响应 301/302,则会由 CDN 节点主动跟随,直到获取到目标文件资源,将最终文件响应给客户端并按缓存规则进行缓存,客户端无需跳转。
这就导致了第三方登录的回调不经过客户机而直接返回到了服务器,导致用户无法直接获取信息
![图片[4]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法](https://www.lequxiang.com.cn/view.php/fff13e2f3a3abefdb3bac92920b113f3.png)
我们将其关闭即可,当然还有部分cdn需要单独设置不缓存的参数,例如腾讯
或者阿里
![图片[5]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法](https://www.lequxiang.com.cn/view.php/46a58cb5c782e996d21f0703312615e6.png)
cdn规则设定
类型 | 内容 | 缓存策略 | 缓存键 |
---|---|---|---|
全部 | * | 7 天 | 缓存不忽略参数 |
文件类型 | .php;.jsp;.asp;.aspx; | 不缓存 | 跟随“全部” |
目录 | /wp-admin;/wp-content;/wp-includes; | 不缓存 | 跟随“全部” |
首页 | / | 不缓存 | 跟随“全部” |

© 版权声明
THE END
- 最新
- 最热
查看全部