如何从 Sanctum token 中检索“登录”用户。
对于登录,我有以下方法
public function login(Request $request)
{
if (Auth::attempt($request->toArray())) {
/* @var User $user */
$user = $request->user();
$token = $user->createToken('web-token')->plainTextToken;
return response()->json([
'user' => $user,
'token' => $token,
], Response::HTTP_OK);
}
}
现在注销我使用自定义方法。public function logout(Request $request)
{
dd($request->user()); // <- Always returns null
}
我想撤销 token ,但我不知道如何检索当前登录的用户。显然,为了注销,我发送了带有 Bearer 和 plainTextToken 作为值的 Authorization header 。
最佳答案
确保您首先在不记名 token 中添加 token
并且让用户离开密室中间件现在 token 是可选的
$user = auth('sanctum')->user();
比登出if ($user) {
$user->currentAccessToken()->delete();
}
注意:这仅删除当前 token 如果您需要使用所有 token
foreach ($user->tokens as $token) {
$token->delete();
}
关于laravel - 通过 Sanctum plainTextToken 检索用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62685696/