解决启用CDN后第三方登录失效

前言

因为最近优化网站,方便一些用户,所以加入了网站第三方登录的功能,但是刚接入就发生了回调失效的问题,本篇文章针对CDN引起的第三方登录进行教程

开始之前

图片[1]-解决启用CDN后第三方登录失效-微生之最
图片[2]-解决启用CDN后第三方登录失效-微生之最

我们可以发现QQ已经加载出登录页面但是调用登录的地方依旧是空白,且刷新也没有用,后台权限也是正常的,我翻阅了QQ互联的文档也没有解决的方案,于是我去问了某些大佬如何解决这个问题,但是也不了了之,于是我自己开始琢磨,发现除了QQ,gitee也有相同的问题

图片[3]-解决启用CDN后第三方登录失效-微生之最

查找错误

后面我是用gitee进行模拟登录,发现 state绑定信息失败 ,也就是说state变量是错误的,根本没有获取到返回的值

cdn回源跟随

默认情况下,CDN 节点未命中缓存,请求回到源站时,如果源站响应了一个 301302 跳转状态码,则 CDN 节点不会缓存这个状态码,而是直接把状态码响应给客户端,由客户端跳转到源站指定的跳转地址。

开启回源跳转跟随配置后,CDN 节点回源时如果遇到源站响应 301/302,则会由 CDN 节点主动跟随,直到获取到目标文件资源,将最终文件响应给客户端并按缓存规则进行缓存,客户端无需跳转。

这就导致了第三方登录的回调不经过客户机而直接返回到了服务器,导致用户无法直接获取信息

图片[4]-解决启用CDN后第三方登录失效-微生之最

我们将其关闭即可,当然还有部分cdn需要单独设置不缓存的参数,例如 腾讯 或者 阿里

图片[5]-解决启用CDN后第三方登录失效-微生之最

cdn规则设定

类型内容缓存策略缓存键
全部*7 天缓存不忽略参数
文件类型.php;.jsp;.asp;.aspx;不缓存跟随“全部”
目录/wp-admin;/wp-content;/wp-includes;不缓存跟随“全部”
首页/不缓存跟随“全部”
© 版权声明
THE END
支持我嘛~
点赞49 分享
碎语词话 共2条
头像
请文明发言哦~
提交
头像

昵称

取消
昵称表情代码