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

Laravel 10问题:忘记密码链接跳转后回到登录表单

Laravel 10 密码重置表单短暂显示后跳转回登录页的解决办法

以下是针对该问题的排查和解决步骤:

1. 检查控制器中间件配置

确认ForgotPasswordController的中间件设置正确,默认应仅允许未登录用户访问:

// app/Http/Controllers/Auth/ForgotPasswordController.php
protected function middleware()
{
    return ['guest'];
}

同时执行命令查看路由绑定的中间件:

php artisan route:list --name=password.request

确保该路由的中间件包含guest,而非auth或其他限制已登录用户的中间件。

2. 排查会话与CSRF问题

  • 清除应用缓存和会话:
    php artisan cache:clear
    php artisan session:clear
    
  • 清除浏览器的缓存和Cookie,避免旧会话干扰。
  • 检查密码重置表单视图(resources/views/auth/passwords/email.blade.php),确保表单内包含@csrf指令,CSRF令牌生成正常。

3. 检查重定向中间件逻辑

查看RedirectIfAuthenticated中间件,确认未登录用户不会被错误重定向:

// app/Http/Middleware/RedirectIfAuthenticated.php
public function handle(Request $request, Closure $next, ...$guards)
{
    $guards = empty($guards) ? [null] : $guards;

    foreach ($guards as $guard) {
        if (Auth::guard($guard)->check()) {
            return redirect(RouteServiceProvider::HOME);
        }
    }

    return $next($request);
}

如果存在自定义逻辑导致未登录用户被重定向,需调整该中间件的判断逻辑。

4. 排查视图与前端问题

  • 打开浏览器开发者工具,点击“忘记密码”链接后,查看网络请求面板:
    • 确认password/reset的请求状态码,若为302,查看重定向目标,定位重发起源。
  • 检查密码重置视图内是否存在错误的JavaScript代码(如自动提交、强制重定向脚本),移除异常代码。

5. 验证认证配置

检查config/auth.php的默认守卫配置,确保使用的web守卫会话驱动正常:

// config/auth.php
'defaults' => [
    'guard' => 'web',
    'passwords' => 'users',
],

'guards' => [
    'web' => [
        'driver' => 'session',
        'provider' => 'users',
    ],
],

同时确认ForgotPasswordController指定了正确的认证守卫:

// app/Http/Controllers/Auth/ForgotPasswordController.php
protected function guard()
{
    return Auth::guard('web');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:35:07