Alexander Kukushkin
Alexander Kukushkin
Docker PHP 7.3.10 没发现有这问题
提供下当前版本
抱歉,没注意到 Jwt::user() 使用不了
目前是可以使用以下方式获取的 ```php use xiaodi\JWTAuth\Facade\Jwt; // 获取(已验证后)整个用户模型对象 $user = Jwt::user(); echo $user->id; ```
你们具体用的是哪个版本的 我排查下
> 我们下一步计划这个问题是改:README.md,还是修复 Jwt::user()原有的功能,感觉修复原来的用法不现实。还是尽快更改README.md的说明吧。然后再加一个方法 Jwt::user()->uid()类似的功能使用代替原有的 Jwt::userId() 用法 还是说 你只想获取对应的id 不想查库?
> > 目前是可以使用以下方式获取的 > > ``` > > use xiaodi\JWTAuth\Facade\Jwt; > > > > // 获取(已验证后)整个用户模型对象 > > $user = Jwt::user(); > > > > echo $user->id; > > ```...
Jwt::user() 是从这两个地方实现,其实就是根据token的id 查表返回当前用户对象。 https://github.com/friendsofthinkphp/think-jwt/blob/next/src/Service/JwtAuth.php#L115 https://github.com/friendsofthinkphp/think-jwt/blob/next/src/Service/User.php#L70
> > 还是说 你只想获取对应的id 不想查库? > > 是的只想获取id不想查库。因为我想把这个id作为一个api接口的基础参数。 只想获取生成时传入的参数 可以这样 ```php if (app('jwt')->verify($token)) { $token = app('jwt.token')->getToken(); $uid = $token->claims()->get('jti'); var_dump($uid); // 获取全部参数 $claims = $token->claims()->all(); var_dump($claims); } ```
意思是 实现成这样是吧? ``` app('jwt.token')->getClaims('username') ```