有状态的APi认证和laravel中的网络认证



所以我有一个web应用程序,它使用santum进行api身份验证,并且在同一应用程序上也有一个管理面板。在设置了我的圣地身份验证后,我的正常网络身份验证不再工作。

这是我的管理员身份验证的登录页面代码;


if (!Auth::attempt(['email' => $this->email, 'password' => $this->password, 'role' => 'admin'])) {
$this->dispatchBrowserEvent('error', ['message' => 'Invalid Credentials, Check your credentials']);
return;
}
$user = User::whereEmail($this->email)->first();
$auth_user = Auth::login($user, $this->remember);
dd(auth()->user()) <- this returns authenticated user;
$this->dispatchBrowserEvent('success', ['message' => 'Login Successfully']);
return redirect()->route('admin.dashboard');

然后在我的自定义身份验证中间件中

dd(auth()->user()); <- this returns null
if (!Auth::check()) {
return redirect()->route('admin.login');
}
if (auth()->user()->role != 'admin') {
return redirect()->route('admin.login');
}
return $next($request);

我知道这与我所做的spa状态授权设置有关。有没有办法让两者都起作用?

您可以将创建的令牌发送到仪表板应用程序,并在来自仪表板的每个API请求中重新发送

  • 首先:您需要创建用户令牌并在登录响应中发送它,请参阅文档
  • 第二:在您的仪表板应用商店令牌中,并在每个API请求中重新发送

相关内容