在jwt-auth laravel中获得custom Claim


Get custom Claim in jwt-auth laravel

我需要帮助来解决一个问题。我使用lumen(laravel 5.1)为移动应用程序创建web服务。我使用JWT进行身份验证,它返回令牌。

第一个问题是,如果我使用来自另一个系统/设备的相同令牌,那么它验证并返回请求的信息。我希望这个令牌应该只对该设备/系统有效。

第二个问题是我在JWT令牌中添加了一些自定义声明。我想从令牌中获得自定义索赔值。我发现了类似的问题,使用Owin从JWT获取自定义声明,但没有得到我如何在php中使用它。

我有办法了。这里的解决方案可能会帮助别人

$payload = JWTAuth::parseToken()->getPayload();
// then either of
$payload->get('foo');
$payload['foo'];

我找到了一个解决办法,这会对你有帮助。

 $token = JWTAuth::getToken(); 
 $payload = JWTAuth::decode($token);
 $validate = $payload->get('foo'); // return true or false
 if($validate) { 
  // some condition
 } else {
  // some condition
 }
        // SENDING:
        $user = User::first();
        $payload = [
            'foo' => 'bar'
        ];
        $guard = 'api'; // or web
        $token = auth($guard)->claims($payload)->login($user);
        // RECEIVING:
        $data = auth($guard)->payload()->get('foo');