首页 > 解决方案 > 如何在 Laravel 8 中使用身份验证保护重定向到预期页面?

问题描述

背景

我正在使用ldaprecord-laravel包进行 Laravel 8 的 LDAP 身份验证。用户将被要求进行身份验证以访问其预期页面,并且在身份验证后应重定向到预期页面。基本身份验证正确重定向,但在我添加自定义身份验证保护后,有效登录将重定向到应用程序的主页 (RouteServiceProvider::HOME),这是默认行为。

我试过的

我尝试编辑App/Http/Middleware/RedirectIfAuthenticated.php重定向到预期页面而不是主页,我收到错误ERR_TOO_MANY_REDIRECTS,因为它不断从登录 -> 预期 -> 登录 -> 预期 -> (...) 重定向。

// 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()->intended(RouteServiceProvider::HOME);  
                // Original: return redirect(RouteServiceProvider::HOME);
            }
        }

        return $next($request);
    }

我没有对 Fortify 的默认路由行为进行任何更改。在使用警卫或某处缺少配置时,是否有另一种方法可以重定向 Fortify 身份验证?

标签: phplaravellaravel-8

解决方案


推荐阅读