Telegram Group & Telegram Channel
πŸ” Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ 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



tg-me.com/javatg/1861
Create:
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

View MORE
Open in Telegram


Java Telegram | DID YOU KNOW?

Date: |

Among the actives, Ascendas REIT sank 0.64 percent, while CapitaLand Integrated Commercial Trust plummeted 1.42 percent, City Developments plunged 1.12 percent, Dairy Farm International tumbled 0.86 percent, DBS Group skidded 0.68 percent, Genting Singapore retreated 0.67 percent, Hongkong Land climbed 1.30 percent, Mapletree Commercial Trust lost 0.47 percent, Mapletree Logistics Trust tanked 0.95 percent, Oversea-Chinese Banking Corporation dropped 0.61 percent, SATS rose 0.24 percent, SembCorp Industries shed 0.54 percent, Singapore Airlines surrendered 0.79 percent, Singapore Exchange slid 0.30 percent, Singapore Press Holdings declined 1.03 percent, Singapore Technologies Engineering dipped 0.26 percent, SingTel advanced 0.81 percent, United Overseas Bank fell 0.39 percent, Wilmar International eased 0.24 percent, Yangzijiang Shipbuilding jumped 1.42 percent and Keppel Corp, Thai Beverage, CapitaLand and Comfort DelGro were unchanged.

What is Telegram?

Telegram is a cloud-based instant messaging service that has been making rounds as a popular option for those who wish to keep their messages secure. Telegram boasts a collection of different features, but it’s best known for its ability to secure messages and media by encrypting them during transit; this prevents third-parties from snooping on messages easily. Let’s take a look at what Telegram can do and why you might want to use it.

Java from vn


Telegram Java
FROM USA