Laravel Sanctum在尝试注销和登录时出现会话问题



我正在使用最新版本的Laravel Sanctum为我的SPA创建一个验证方法,但我遇到了一个问题(请注意,我使用Laravel的时间不长(。当我登录时它可以工作,但当我注销并尝试登录时,它停止工作。经过一些测试,我注意到这是因为laravel添加了一块饼干。

//loginController

public function login(Request $request)
{
if ($this->validator($request->all())->fails()) {
//validation stuff
} else {
$credentials = [
'email' => $request->email,
'password' => $request->password,
];
$user = User::where('email', $request->email)->firstOrFail();
if (auth()->attempt($credentials)) {          
$token = $user->createToken('auth')->plainTextToken;
$response_code = 200;
$response = [
'user' => $user,
'success' => true,
'errors' => false,
'message' => 'Login successfully',
'access_token' => $token,
'token_type' => 'Bearer',
];
} else {
$response_code = 422;
$response = [
'success' => false,
'errors' => [],
'message' => 'Invalid login'
];

}
}
public function logout(Request $request)
{
$request->user()->tokens()->delete();
}

如果您使用santum在laravel应用程序中设置有状态身份验证,要成功注销,请在注销方法中执行以下操作:

public function logout(Request $request)
{
// invalidate the tokens
Auth::user()->tokens()->delete();
// Also invalidates the session/cookies
$request->session()->invalidate();
}

最新更新