我在项目中使用Laravel Sanctum。 我创建了中间件,为每个API请求添加授权标头(承载者令牌)。身份验证用户具有令牌,但已在数据库中进行了哈希处理。我想发送下一个请求的令牌(已授权)。如何获取经过身份验证的令牌值(如JWT令牌)?
答案 0 :(得分:1)
您只能在第一次创建时获得 plainTextToken
。一旦创建,就无法再次获得它。它在令牌/创建响应正文中返回。捕获它并且不要丢失它,这将是该用户与受密室保护的路由进行通信/验证的唯一方式。创建后,散列(不可解密)版本将保存到数据库中。您从 tokens/create 方法中保存的纯文本令牌经过哈希处理并与此进行比较以确认用户的身份。与 JWT 不同的是,您不会在创建后获得相同令牌的新迭代。
在此处查看更多信息:https://laravel.com/docs/8.x/sanctum#issuing-api-tokens
答案 1 :(得分:0)
你可以像这样从标题中捕获令牌
$token = null;
$headers = apache_request_headers();
if (isset($headers['Authorization'])) {
if (strpos($headers['Authorization'], 'Bearer') !== false) {
$token = str_replace('Bearer ', '', $headers['Authorization']);
}
}