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