🔥 TIL - Day 29
プロジェクトはもうすぐ終わります.今日は自分で簡単なプロジェクトを考えて、個人的な勉強をしました.
このプロジェクトでは、認証部分を実現するのも大変で、まだ不満な点が多く、後でSpringに移動して、より良い実現のためにspringでjwtを練習しました.
JavaでJWTに提供されるライブラリは、大きく2つあります.
📌 Okta jjwt
すなわち,トークン検証に失敗してもClaimを確認し,必要に応じて適切な応答を行うことができる.
このプロジェクトでは、認証部分を実現するのも大変で、まだ不満な点が多く、後でSpringに移動して、より良い実現のためにspringでjwtを練習しました.
JavaでJWTに提供されるライブラリは、大きく2つあります.
auth0
で作られたJava JWT
とokta
で作られたjjwt
があります.📌 Okta jjwt
okta
のjjwt
から簡単にわかります.[ Maven ]
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt-api</artifactId>
<version>0.11.2</version>
</dependency>
[ Gradle ]
implementation 'io.jsonwebtoken:jjwt-api:0.11.2'
Claim
の作成方法Strint jwtToken = Jwts.builder().addClaims()
.Map.of(
"exp",
"key1", "value1",
"key2", "value2", ...
)
.signWith(SignatureAlgorithm.HS256, "JWT_SECRET_KEY")
.compact();
Payload
パケットメソッド(トークン復号)Jws<Claims> jwt = Jwts.parser()
.setSigningKey("JWT_SECRET_KEY")
.parseClaimsJws(jwtToken);
📌 auth0 Java-JWTauth0
のJava JWT
を簡単にご紹介します.[ Maven ]
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.18.2</version>
</dependency>
[ Gradle ]
implementation 'com.auth0:java-jwt:3.18.2'
Claim
の作成方法String jwtToken = JWT.create()
.withSubject("subject"
.withExpiresAt(new Date(System.currentTimeMillis() + ... )
.withClaim("key2", "value2")
.sign(Algorithm.HMAC256("JWT_SECRET_KEY"));
Payload
パケットメソッド(トークン復号)DecodedJWT jwt = JWT.require(Algorithm.HMAC256("JWT_SECRET_KEY"))
.build()
.verify(jwtToken);
Java JWT
とは異なり、jjwt
は、鍵を必要とせずにトークンを復号する方法を提供する.すなわち,トークン検証に失敗してもClaimを確認し,必要に応じて適切な応答を行うことができる.
DecodedJWT token = JWT.decode(jwtToken)
token.getClaims()
Reference
この問題について(🔥 TIL - Day 29), 我々は、より多くの情報をここで見つけました https://velog.io/@dhk22/TIL-Day-29テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol