在 laravel 中找到具有 JWT 令牌的用户 ID
find id of user with JWT token in laravel
在我的 API 中,用户注册后,将使用以下代码创建令牌:
$token = JWTAuth::fromUser($user);
当我使用 dd($token) 时,returns 这个 :
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjE6ODAwMFwvYXBpXC9sb2dpbiIsImlhdCI6MTYyNjgxNDM2NCwiZXhwIjoxNjI2ODE3OTY0LCJuYmYiOjE2MjY4MTQzNjQsImp0aSI6Imd3eDZnVzNGTGN4MzlMekIiLCJzdWIiOjQsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ._m-7tojFaupUbAibDUbLJm6BeuFVL_etdFlwj0h5664
那么,如果不在邮递员授权中输入此令牌,我如何才能找到用户的 ID?
简单,使用https://jwt.io
在“子”(主题)中,您将看到用户 ID。
阅读更多关于 jwt tokens
无论您从请求 headers 中获得什么标记字符串,都可以使用它来创建一个 Token
class 的 object 像这样
$token = new Token(token_string);
之后,像这样在 JWTAuth
class 中使用 $token
JWTAuth::setToken($token);
最后调用JWTAuth
class的getPayload
方法获取实际数据。
JWTAuth::getPayload($token)->get('sub')
完整代码
use JWTAuth;
use Tymon\JWTAuth\Token;
...
...
// generate token
$user = \App\User::find(1);
$tokenString = JWTAuth::fromUser($user);
// decode token to get actual data
$token = new Token($tokenString); // here you use header insted of $tokenString
JWTAuth::setToken($token);
$subject = JWTAuth::getPayload($token)->get('sub');
在我的 API 中,用户注册后,将使用以下代码创建令牌:
$token = JWTAuth::fromUser($user);
当我使用 dd($token) 时,returns 这个 :
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC8xMjcuMC4wLjE6ODAwMFwvYXBpXC9sb2dpbiIsImlhdCI6MTYyNjgxNDM2NCwiZXhwIjoxNjI2ODE3OTY0LCJuYmYiOjE2MjY4MTQzNjQsImp0aSI6Imd3eDZnVzNGTGN4MzlMekIiLCJzdWIiOjQsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ._m-7tojFaupUbAibDUbLJm6BeuFVL_etdFlwj0h5664
那么,如果不在邮递员授权中输入此令牌,我如何才能找到用户的 ID?
简单,使用https://jwt.io
在“子”(主题)中,您将看到用户 ID。
阅读更多关于 jwt tokens
无论您从请求 headers 中获得什么标记字符串,都可以使用它来创建一个 Token
class 的 object 像这样
$token = new Token(token_string);
之后,像这样在 JWTAuth
class 中使用 $token
JWTAuth::setToken($token);
最后调用JWTAuth
class的getPayload
方法获取实际数据。
JWTAuth::getPayload($token)->get('sub')
完整代码
use JWTAuth;
use Tymon\JWTAuth\Token;
...
...
// generate token
$user = \App\User::find(1);
$tokenString = JWTAuth::fromUser($user);
// decode token to get actual data
$token = new Token($tokenString); // here you use header insted of $tokenString
JWTAuth::setToken($token);
$subject = JWTAuth::getPayload($token)->get('sub');