私はTymonのJWTAuthを使用して、アプリケーションをトークンからステートレスにAPIに接続しています。しかし問題は、ペイロードデータでトークンをデコードすると、iss
の値がAPIのURLそのものであるということです。LaravelまたはLumen JWTはデフォルトのクレームを取り除きます
値を変更すると、キーがトークンに渡されなくなります。ここで
は、トークンの復号値は、私は、カスタムクレームを追加することができますがiss
キーを削除することができません(私は例の目的のために、ここで値を編集した)
{
"iss": "http://localhost.com/api/",
"iat": 1111111111,
"exp": 2222222222,
"nbf": 3333333333,
"jti": "xxxxxxxxxxxxxx",
"sub": 1234,
"foo": "bar",
"baz": "bob"
}
です。
$token = $jwt->attempt($request->only(['username', 'password']));
$customClaims = ['foo' => 'bar', 'baz' => 'bob'];
$payload = $jwtFactory->customClaims($customClaims)->make(true);
$token = $jwt->encode($payload);
if ($token === false) {
echo 'invalid credentials';
} else {
echo 'valid user';
}
私も試してみました: $jwtFactory->iss('http://example.com')->foo(['lol'])->make();
のみfoo
キーまたはむしろ「カスタム要求」の値は変更はなく、デフォルトの主張されているが。しかし、documentationに記載されているように、デフォルトクレーム値は設定すると変更できます。
jwt configのrequired_claimsアレイから削除しましたか? –
@ JigarShahはい私はしたし、それはまだデフォルトの主張が含まれています。 – basagabi
はいそれはPayloadFactoryのdefaultClaimsになります –