返回
如何从 Laravel Sanctum 请求中获取当前的个人访问令牌?
php
2024-03-12 21:30:31
## 获取 Laravel Sanctum 中当前的个人访问令牌
介绍
Laravel Sanctum 是一个轻量级的 Laravel 包,用于通过生成个人访问令牌来处理 API 身份验证。这些令牌可用于代表用户执行操作,而无需提供其密码。本文将指导你如何从 Laravel Sanctum 请求中获取当前的个人访问令牌。
先决条件
- 安装 Laravel Sanctum。
- 在
config/sanctum.php
中配置 Sanctum。 - 创建个人访问令牌。
从请求中获取令牌
要在控制器中从请求中获取令牌,请使用以下步骤:
use
Laravel 的PersonalAccessToken
类。- 调用
PersonalAccessToken::findToken()
方法,传入请求的 bearer 令牌。 - 如果令牌不存在或无效,返回 401 未授权响应。
- 返回令牌的 JSON 响应。
public function getCurrentToken(Request $request)
{
$token = PersonalAccessToken::findToken($request->bearerToken());
if (!$token) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return response()->json(['token' => $token], 200);
}
使用令牌
获取令牌后,你可以使用它来代表用户执行操作。例如,你可以获取用户的详细信息:
$user = $token->tokenable;
提示
- 确保控制器使用
auth:sanctum
中间件进行保护。 PersonalAccessToken::findToken()
方法需要令牌作为参数。- 如果令牌无效或未找到,则返回 401 未授权响应。
- 你可以通过在
config/auth.php
配置文件中设置sanctum.prefix
来更改个人访问令牌的路由前缀。
常见问题解答
1. 如何创建个人访问令牌?
php artisan sanctum:token
2. 如何获取令牌的详细信息?
使用 $token->tokenable
属性。
3. 如何验证令牌是否有效?
调用 $token->isValid()
方法。
4. 如何撤销令牌?
调用 $token->delete()
方法。
5. 如何更改令牌的路由前缀?
在 config/auth.php
中设置 sanctum.prefix
选项。
结论
通过获取 Laravel Sanctum 中当前的个人访问令牌,你可以安全地代表用户执行操作。遵循本文中的步骤,你可以轻松地实现这一点,并利用 Sanctum 的强大功能来保护你的 API。