tg-me.com/javatg/1861
Last Update:
π Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ JWT-ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Auth0 Java JWT
ΠΡΠ»ΠΈ ΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΡ Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠ΅ΠΉ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡΡ Π² Java-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
, ΡΠ΅Π±Π΅ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡ [Auth0](https://github.com/auth0/java-jwt) Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ JWT.
π Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ JWT?
JWT (JSON Web Token) β ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠ°ΠΊ JSON-ΠΎΠ±ΡΠ΅ΠΊΡΡ. ΠΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π²Π΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ Π±Π΅Π· ΡΠ΅ΡΡΠΈΠΉ.
π§° Auth0 Java JWT ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ:
- ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ Ρ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΌΠΈ claim'Π°ΠΌΠΈ
- ΠΠΎΠ΄ΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ HMAC ΠΈΠ»ΠΈ RSA
- ΠΠ°Π»ΠΈΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ
- ΠΡΠΎΠ²Π΅ΡΡΡΡ ΡΡΠΎΠΊ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ (exp), Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ, ΡΡΠ±ΡΠ΅ΠΊΡ ΠΈ ΠΏΡΠΎΡΠ΅Π΅
π§ͺ ΠΡΠΈΠΌΠ΅Ρ: Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠΎΠΊΠ΅Π½Π°
Algorithm algorithm = Algorithm.HMAC256("secret");
String token = JWT.create()
.withIssuer("auth0")
.withClaim("userId", 123)
.withExpiresAt(new Date(System.currentTimeMillis() + 3600_000))
.sign(algorithm);
π ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Π°
JWTVerifier verifier = JWT.require(algorithm)
.withIssuer("auth0")
.build();
DecodedJWT jwt = verifier.verify(token);
System.out.println(jwt.getClaim("userId").asInt());
π‘οΈ ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°:
- ΠΡΠΎΡΡΠΎΡΠ° API
- Π₯ΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΈ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ
- ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»ΡΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ
π Π‘ΡΠ°ΡΡΡ Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΡΠΌΠΈ:
π https://www.blackslate.io/articles/manage-jwt-
ΠΡΠ»ΠΈ ΡΡ ΠΏΠΈΡΠ΅ΡΡ backend Π½Π° Java ΠΈ ΡΠ°Π±ΠΎΡΠ°Π΅ΡΡ Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ β ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΡΠ½ΠΎ ΡΡΠΎΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ.
@javatg
BY Java

Share with your friend now:
tg-me.com/javatg/1861