You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中登录验证始终跳转到登录失败页面问题排查

Laravel登录验证始终失败的排查方案
  • 密码存储格式错误:Auth::attempt()要求密码必须是通过Laravel自带的Hash::make()加密后存入数据库的。如果数据库里存的是明文或者用了其他加密方式,验证肯定过不了。可以在tinker里执行Hash::check('你的明文密码', '数据库里的密码字段值'),看返回结果是不是true。

  • 请求参数或数据库字段不匹配:

    • 确认数据库里存用户邮箱的字段是email,如果是自定义的user_email之类的,要把attempt数组里的键改成对应的字段名。
    • 在check_login方法开头加dd($request->only('email', 'password')),看看拿到的参数和数据库里的用户信息是否一致,有没有拼写错误或者大小写问题。
  • 用户状态被限制:如果你的User模型加了全局作用域(比如强制筛选status=1的用户),或者认证配置里加了额外条件,哪怕账号密码对,也会被拦截。可以临时注释模型里的全局作用域测试一下。

  • CSRF或Session配置异常:

    • 登录表单里必须加@csrf指令,没有的话请求会被CSRF中间件拦截,直接导致验证失败。
    • 检查.env里的SESSION_DRIVER配置是否正常(比如file或database),session存储异常也会影响认证状态。
  • 认证配置或模型问题:

    • 核对config/auth.php里的defaults.guard是不是web,guards.web.provider对应的模型是不是你的User模型。
    • 确认User模型继承了Illuminate\Foundation\Auth\User类,并且引入了Authenticatable trait,这是认证的基础。
  • 代码小细节修正:你的代码里用了$request->session()->regenerateToken();,Laravel推荐登录后用$request->session()->regenerate();来重新生成session ID,防止会话固定攻击,虽然这个不会直接导致验证失败,但建议修正。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 00:35:30