我需要帮助来解决一个问题。我使用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');