jjwtライブラリを使用して、
String compactJws = Jwts.builder().setSubject("Joe").signWith(SignatureAlgorithm.HS512, key).compact();
しかし、このトークンは永続的です。これに何らかのタイムアウトを設定するにはどうすればよいですか?
Date expiration = getExpirationDate(); // implement me
Jwts.builder().setSubject("Joe")
.setExpiration(expiration)
.signWith(SignatureAlgorithm.HS512, key)
.compact();
JWT仕様に従って、日付はエポックからの秒数(ミリ秒ではなく)に変換され、exp
JWTクレームとして保存されます。パーサーはそのクレームを調べて、JWTの有効期限が切れていないことを確認します。
有効期限チェックは、解析時のシステム時刻に基づいていることに注意してください。トークンを生成したマシンのクロックが、トークンを解析するマシンと比較してかなりずれている場合、有効期限チェックが失敗する可能性があります。この場合、setAllowedClockSkewSeconds
(JwtParser / Builderで)JJWTのメソッドを使用して、クロック間の違いに多少の余裕を持たせることができます(1〜2分で十分です)。次に例を示します。
Jwts.parser().setAllowedClockSkewSeconds(120)...etc...
何らかの理由で十分ではない場合は、次の方法で実際の解析クロックを制御できます。
Jwts.parser().setClock(new MyClock())...etc...
Clock
ただし、ほとんどの場合、を設定する必要はありません(通常、テストケースで最も役立ちます)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加