1

我在我的项目中使用 Laravel Sanctum。我创建了中间件来为每个 API 请求添加授权标头(承载令牌)。身份验证用户有令牌,但它在数据库中被散列。我想为下一个请求发送令牌(已授权)。如何获取经过身份验证的令牌值(如 JWT 令牌)?

4

2 回答 2

3

plainTextToken只能在第一次创建时获得。一旦它被创建,就没有办法再次获得它。它在令牌/创建响应正文中返回。捕获它并且不要丢失它,这将是该用户与您的避难所保护路线进行通信/身份验证的唯一方式。创建后,哈希(不可解密)版本将保存到数据库中。您从 tokens/create 方法保存的纯文本令牌经过哈希处理并与此进行比较以确认用户的身份。与 JWT 不同,您不会在创建后获得相同令牌的新迭代。

在此处查看更多信息:https ://laravel.com/docs/8.x/sanctum#issuing-api-tokens

于 2021-02-06T00:19:00.157 回答
0

你像这样从标题中捕获令牌

        $token = null;
        $headers = apache_request_headers();
        if (isset($headers['Authorization'])) {
            if (strpos($headers['Authorization'], 'Bearer') !== false) {
                $token = str_replace('Bearer ', '', $headers['Authorization']);
            }
        }
于 2021-04-20T17:32:41.840 回答