分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法

前言

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

开始之前

图片[1]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法
图片[2]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法

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

图片[3]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法

查找错误

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

cdn回源跟随

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

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

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

图片[4]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法

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

图片[5]-分享一个解决启用CDN后QQ互联/微信登录/微博登录等第三方软件授权登录失效问题的方法

cdn规则设定

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

请登录后发表评论