You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

OAuth登录失效:出现重定向次数过多错误(ERR_TOO_MANY_REDIRECTS)求助

排查Facebook登录重定向过多(ERR_TOO_MANY_REDIRECTS)的常见原因

这种循环重定向的问题在OAuth登录流程里真的太容易踩坑了,我帮你从你提到的几个核心配置维度逐一排查可能的问题:

  • 回调路由的循环逻辑陷阱
    先检查你的auth/facebook/callback路由本身的访问控制:是不是给这个路由加了强制登录的中间件?比如如果路由配置里套了auth中间件,用户在回调时还没完成登录,就会被中间件直接跳回登录页,接着又触发Facebook授权流程,回调再次被拦截,无限循环。回调路由绝对不能加需要登录才能访问的中间件!
    另外,看看回调路由处理完后有没有错误地重定向回自身,或者重定向到需要登录的页面——比如如果处理code失败后,没做正确的错误提示,反而又跳回授权入口,也会导致循环。

  • OAuth控制器的逻辑错误
    重点看控制器处理Facebook回调的代码:

    • 是不是在获取access_token或用户信息失败时,没有捕获错误并做合理处理,反而直接重定向到Facebook授权页?比如请求Facebook接口返回错误,你直接redirect()->route('facebook.login'),那用户就会不断重复“授权→回调失败→授权”的循环。
    • 有没有在处理完登录逻辑后,错误地重定向回回调路由本身?比如代码里不小心写了return redirect()->back()或者指向回调路由的跳转,这肯定会触发无限循环。
  • 应用域名与站点URL的不匹配
    这是OAuth登录里最容易忽略的细节:

    • 去Facebook开发者后台,检查“有效的OAuth重定向URI”是不是和你的本地回调地址完全一致?比如你本地是http://proj.test/auth/facebook/callback,就必须精确填写,不能多一个斜杠、不能用https(如果本地是http环境)、域名也不能错。要是填错了,Facebook会拒绝回调请求,你的后端可能就会跳回授权页,导致循环。
    • 检查你项目里的站点URL配置(比如框架里的APP_URL)是不是和实际访问的地址一致?比如如果APP_URL设成了https://proj.test,但你本地用http访问,那生成的授权URL里的回调地址是https,而你的服务器是http,回调时就会出现不匹配,后端处理失败后重定向到授权,循环往复。
  • Session/Cookie的存储问题
    如果你的本地环境Session无法正常存储,也会导致这种问题:比如处理完OAuth回调后,成功获取了用户信息,但无法把登录状态写入Session,下一次请求就会被判定为未登录,跳回登录页,再次触发Facebook登录流程。
    可以检查下Session驱动的配置(比如file驱动的话,storage目录有没有写入权限),或者Cookie的domain设置是不是和当前域名一致,导致Session无法跨路由共享。

内容的提问来源于stack exchange,提问作者user9289573

火山引擎 最新活动