这个费了点时间,所以记录下:

App\Exceptions\Handler.php中重写两个方法如下:

/**
 * Convert an authentication exception into a response.
 * @param  \Illuminate\Http\Request  $request
 * @param  \Illuminate\Auth\AuthenticationException  $exception
 * @return \Symfony\Component\HttpFoundation\Response
 */
protected function unauthenticated($request, AuthenticationException $exception)
{
    return $request->expectsJson()
        ? response()->json(['message' => $exception->getMessage()], 401)
        : redirect()->guest($this->redirectTo($exception->guards()) ?? route('login'));
}
/**
 * 重定向跳转至会员中心
 * @param array $guardArr
 * @return string
 */
protected function redirectTo($guardArr = [])
{
    if(in_array('member',$guardArr)){
        return route('member.login');
    }
}

其中关键点是拿到guards()里的门卫名称,根据此来判断:
$exception->guards()得到数据类似['admin','user']再据此判断。

标签: none

添加新评论