Laravel 验证用户注销错误

Mat*_*ttJ 3 authentication logout laravel

尝试使用 Laravel 默认控制器(身份验证/密码)在我的站点上实现一个简单的用户注册/登录功能,但是一旦我登录,类 RedirectIfAuthenticated 句柄函数就会阻止对身份验证 URL 的所有访问,因此我无法再注销。是否有错误,我需要在句柄函数上写一个异常,或者我错过了什么?默认情况下,该类的外观如下所示:

class RedirectIfAuthenticated
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        //dd($next($request));
        if (Auth::guard($guard)->check()) {
            return redirect('/articles');
        }

        return $next($request);
    }
}
Run Code Online (Sandbox Code Playgroud)

who*_*oan 5

AuthController类的构造函数应类似于此:

public function __construct()
{
    $this->middleware('guest', ['except' => 'logout']);
}
Run Code Online (Sandbox Code Playgroud)

guest中间件是由处理RedirectIfAuthenticated类,以有注销功能的工作,你应该选择一个:

  • 调用logout从你的方法AuthController
  • 调用您用于注销的任何方法并将其排除在AuthController的构造函数中:

    public function __construct()
    {
        $this->middleware('guest', ['except' => '<whichever_method>']);
    }
    
    Run Code Online (Sandbox Code Playgroud)