在jwt-auth laravel中获取自定义声明

时间:2015-10-08 12:37:23

标签: php laravel-5.1 jwt lumen

我需要帮助才能找出问题所在。 我正在使用流明(laravel 5.1)为移动应用程序创建Web服务。我正在使用JWT进行身份验证,并返回一个令牌。

第一个问题是,如果我从另一个系统/设备使用相同的令牌,那么它会验证并返回所请求的信息。我希望该令牌仅对用户获取令牌的那个设备/系统有效。

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

请帮我解决问题。

3 个答案:

答案 0 :(得分:7)

我得到了解决方案。这里的解决方案可能是帮助别人

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

答案 1 :(得分:0)

我找到了解决方案,这对您有帮助。

 $token = JWTAuth::getToken(); 
 $payload = JWTAuth::decode($token);

 $validate = $payload->get('foo'); // return true or false

 if($validate) { 
  // some condition
 } else {
  // some condition
 }

答案 2 :(得分:0)

        // 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');