laravel - 通过 Sanctum plainTextToken 检索用户

标签 laravel laravel-sanctum

如何从 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/

相关文章:

excel - 如何通过 Laravel 从 Excel 中的特定单元格地址获取值

Laravel Sanctum CSRF Coo​​kie 请求可选

laravel-sanctum - Laravel sainttum SPA - 此 set-cookie 域属性对于当前主机 url 无效

javascript - Laravel-Mix 使用 webpack : JQuery is not autoloaded

Laravel Sanctum 使用 postman 未经身份验证

laravel - Laravel Sanctum 和 Postman 的 POST 请求问题

laravel - 有没有办法在不同的域上拥有 Sanctuary

php - Img 源字符串未正确连接对象变量

laravel - 碳 - "The date does not match the format d/m/Y H:i:s."

php - 使用没有 Blade 的 laravel 模板显示内容