JWT āļāļ·āļāļāļ°āđāļĢ? āļāļđāđāļĄāļ·āļāļāļāļąāļāļŠāļĄāļāļđāļĢāļāđāđāļāļĩāđāļĒāļ§āļāļąāļ JSON Web Tokens
JWT āļāļ·āļāļāļ°āđāļĢ?
JSON Web Token (JWT) āđāļāđāļāļĄāļēāļāļĢāļāļēāļāđāļāļīāļ (RFC 7519) āļāļĩāđāļāļģāļŦāļāļāļ§āļīāļāļĩāļāļēāļĢāļāļĩāđāļāļ°āļāļąāļāļĢāļąāļāđāļĨāļ°āļāļĢāļāļāđāļ§āļāđāļāļāļąāļ§āđāļāļāđāļāļāļēāļĢāļŠāđāļāļāđāļāļĄāļđāļĨāļĢāļ°āļŦāļ§āđāļēāļāļāđāļēāļĒāļāđāļēāļāđ āļāļĒāđāļēāļāļāļĨāļāļāļ āļąāļĒāđāļāļĢāļđāļāđāļāļ JSON object JWT āđāļāđāļāļĢāļđāļāđāļāļāđāļāđāļāđāļāļāļĩāđāđāļāļāđāļāđāļāđāļāđāļ§āđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļŠāļĄāļąāļĒāđāļŦāļĄāđ āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļļāļāļāļĒāđāļēāļāļāļąāđāļāđāļāđāļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāļāļāļāļđāđāđāļāđāđāļĨāļ°āļāļēāļĢāļāļāļļāļāļēāļ API āđāļāļāļāļāļķāļāļāļēāļĢāđāļĨāļāđāļāļĨāļĩāđāļĒāļāļāđāļāļĄāļđāļĨāļāļĩāđāļāļĨāļāļāļ āļąāļĒāļĢāļ°āļŦāļ§āđāļēāļāđāļĄāđāļāļĢāđāļāļāļĢāđāļ§āļīāļŠ
āļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāđāļ§āļĒ JWT āļāļģāļāļēāļāļāļĒāđāļēāļāđāļĢ
āļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāđāļ§āļĒ JWT āđāļāđāļĢāļđāļāđāļāļāđāļĢāđāļŠāļāļēāļāļ°āļāļĩāđāļĨāļāļāļ§āļēāļĄāļāļģāđāļāđāļāđāļāļāļēāļĢāļāļąāļāđāļāđāļāđāļāļŠāļāļąāļāļāļąāđāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ āļāļēāļĢāđāļāđāļēāđāļāđāļāļĨāļ§āđāļāļĩāđāđāļāđāļāļāļļāļāđāļāļŠāļģāļāļąāļāđāļāļāļēāļĢāđāļāđāļēāđāļāļ§āđāļēāļāļģāđāļĄ JWT āļāļķāļāļāļĨāļēāļĒāđāļāđāļāļāļąāļ§āđāļĨāļ·āļāļāđāļĢāļīāđāļĄāļāđāļāļŠāļģāļŦāļĢāļąāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļ API āļŠāļĄāļąāļĒāđāļŦāļĄāđ
āđāļāļĨāļ§āđāļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļ
- āļāļđāđāđāļāđāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļ â āđāļāļĨāđāļāļāļāđāļŠāđāļāļāđāļāļĄāļđāļĨāļāļĢāļ°āļāļģāļāļąāļ§ (āļāļ·āđāļāļāļđāđāđāļāđāđāļĨāļ°āļĢāļŦāļąāļŠāļāđāļēāļ) āđāļāļĒāļąāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļ
- āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļŠāļĢāđāļēāļ JWT â āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļĢāļ§āļāļŠāļāļāļāđāļāļĄāļđāļĨāļāļĢāļ°āļāļģāļāļąāļ§ āļŠāļĢāđāļēāļ JWT āļāļĩāđāļĄāļĩāļāđāļāļĄāļđāļĨāļāļĢāļ°āļāļģāļāļąāļ§āđāļĨāļ°āļŠāļīāļāļāļīāđāļāļāļāļāļđāđāđāļāđ āļĨāļāļāļēāļĄāļāđāļ§āļĒ secret āļŦāļĢāļ·āļ private key āđāļĨāļ°āļŠāđāļāļāļĨāļąāļāđāļāļĒāļąāļāđāļāļĨāđāļāļāļāđ
- āđāļāļĨāđāļāļāļāđāđāļāđāļāđāļāđāļāđāļ â āđāļāļĨāđāļāļāļāđāđāļāđāļ JWT āđāļāļĒāļāļąāđāļ§āđāļāđāļ localStorage, sessionStorage āļŦāļĢāļ·āļ HTTP-only cookie
- āđāļāļĨāđāļāļāļāđāļŠāđāļāđāļāđāļāđāļāđāļāļāļąāļāļāļļāļāļāļģāļāļ â āļŠāļģāļŦāļĢāļąāļāļāļļāļāļāļģāļāļ API āļāļĩāđāļāļēāļĄāļĄāļē āđāļāļĨāđāļāļāļāđāļĢāļ§āļĄ JWT āđāļ header
AuthorizationāđāļāļĒāđāļāđāļĢāļđāļāđāļāļ Bearer:Authorization: Bearer <token> - āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļĢāļ§āļāļŠāļāļāđāļāđāļāđāļ â āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļĢāļ§āļāļŠāļāļāļĨāļēāļĒāđāļāđāļ JWT āļāļĢāļ§āļāļŠāļāļāđāļ§āļĨāļēāļŦāļĄāļāļāļēāļĒāļļ āđāļĨāļ°āđāļĒāļ claims āļāļđāđāđāļāđāđāļāļ·āđāļāļāļāļļāļāļēāļāļāļģāļāļ
- āđāļĄāđāļāđāļāļāļāđāļāļŦāļēāđāļāļŠāļāļąāļ â āđāļāļ·āđāļāļāļāļēāļ JWT āļĄāļĩāļāđāļāļĄāļđāļĨāļāļĩāđāļāļģāđāļāđāļāļāļąāđāļāļŦāļĄāļ āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāļķāļāđāļĄāđāļāđāļāļāļŠāļāļāļāļēāļĄāļāļēāļāļāđāļāļĄāļđāļĨāļŦāļĢāļ·āļāđāļāļāđāļāļ·āđāļāļĢāļ°āļāļļāļāļąāļ§āļāļđāđāđāļāđ
āļāļģāđāļĄāļŠāļīāđāļāļāļĩāđāļāļķāļāļŠāļģāļāļąāļ
āļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāđāļāļāđāļāđāđāļāļŠāļāļąāļāļāļąāđāļāđāļāļīāļĄāđāļāđāļ session ID āđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļŦāļĢāļ·āļāļāļēāļāļāđāļāļĄāļđāļĨāļāļāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ āļāļļāļāļāļģāļāļāļāļĩāđāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāđāļāļāļĄāļĩāļāļēāļĢāļāđāļāļŦāļē JWT āļāļāļąāļāļāļēāļĢāļāđāļāļŦāļēāļāļĩāđ â āđāļāđāļāđāļāđāļāļāļāļīāļŠāļđāļāļāđāļāļąāļ§āļāļāļāļāļāļāļđāđāđāļāđ āļŠāļīāđāļāļāļĩāđāļāļģāđāļŦāđāļĢāļ°āļāļāļāļĩāđāđāļāđ JWT āļŠāļēāļĄāļēāļĢāļāļāļĒāļēāļĒāļāļāļēāļāđāļāđāđāļāļĒāļāļĢāļĢāļĄāļāļēāļāļīāđāļāļĢāļēāļ°āđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļāđ āđāļāļāļĨāļąāļŠāđāļāļāļĢāđāļŠāļēāļĄāļēāļĢāļāļāļĢāļ§āļāļŠāļāļāđāļāđāļāđāļāđāļāđāđāļāļĒāđāļĄāđāļāđāļāļāļĄāļĩāļŠāļāļēāļāļ°āđāļāļŠāļāļąāļāļĢāđāļ§āļĄāļāļąāļ
JWT āđāļāļĩāļĒāļāļāļąāļāļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāđāļāļāđāļāđāđāļāļŠāļāļąāļ
| āļāđāļēāļ | āļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļāđāļ§āļĒ JWT | āļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāđāļāļāđāļāđāđāļāļŠāļāļąāļ | |--------|--------------------|------------------------------| | āļāļēāļĢāļāļąāļāđāļāđāļ | āļāļąāđāļāđāļāļĨāđāļāļāļāđ (āđāļāđāļāđāļāđāļ) | āļāļąāđāļāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ (āđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļŦāļĢāļ·āļ DB) | | āļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāđāļāļāļēāļĢāļāļĒāļēāļĒāļāļāļēāļ | āđāļĄāđāļāđāļāļāļāļēāļĢāļāļĩāđāđāļāđāļāđāļāļŠāļāļąāļāļĢāđāļ§āļĄāļāļąāļ | āļāđāļāļāļāļēāļĢāļāļĩāđāđāļāđāļāđāļāļŠāļāļąāļāļĢāđāļ§āļĄāļāļąāļāļĢāļ°āļŦāļ§āđāļēāļāļāļīāļāļŠāđāļāļāļāđ | | āļāđāļēāļĄāđāļāđāļĄāļ | āļāļģāļāļēāļāļāđāļēāļĄāđāļāđāļĄāļāđāļāđāļāļēāļĄāļāļĢāļĢāļĄāļāļēāļāļī | āļĒāļēāļāļāļĩāđāļāļ°āđāļāļĢāđāđāļāļŠāļāļąāļ | | āđāļāđāļāļĄāļīāļāļĢāļāļąāļāļĄāļ·āļāļāļ·āļ | āđāļāđ (āđāļĄāđāļāđāļāļāļāļēāļĢ cookies) | āļāđāļāļāļāļēāļĢāļāļēāļĢāļŠāļāļąāļāļŠāļāļļāļ cookie | | āļāļēāļĢāđāļāļīāļāļāļāļ | āļĒāļēāļ (āļāļāļāļ§āđāļēāđāļāđāļāđāļāļāļ°āļŦāļĄāļāļāļēāļĒāļļ) | āļāđāļēāļĒ (āļĨāļāđāļāļŠāļāļąāļāļāļēāļāļāļĩāđāđāļāđāļ) | | āļāļāļēāļ payload | āđāļŦāļāđāļāļ§āđāļēāļāđāļāļāļģāļāļ (āđāļāđāļāđāļāđāļ header) | āļāđāļāļĒāļāļĩāđāļŠāļļāļ (āđāļāđ session ID) |
āļāļģāđāļĄ JWT āļāļķāļāđāļāđāļŠāļģāļŦāļĢāļąāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļ API
āļāļļāļāļĨāļąāļāļĐāļāļ°āļāļĩāđāļāļģāđāļŦāđ JWT āđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāļĒāļąāļāļāļģāđāļŦāđāđāļŦāļĄāļēāļ°āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ API āļāļĩāļāļāđāļ§āļĒ
āđāļĢāđāļŠāļāļēāļāļ°āđāļĨāļ°āļāļĢāļąāļāļāļāļēāļāđāļāđ
āļāļļāļ JWT āļāļģāļāļēāļāđāļāļĄāļđāļĨāļāļąāđāļāļŦāļĄāļāļāļĩāđāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāļāđāļāļāļāļēāļĢāđāļāļ·āđāļāļāļāļļāļāļēāļāļāļģāļāļ āđāļĄāđāļĄāļĩāļāļēāļāļāđāļāļĄāļđāļĨāđāļāļŠāļāļąāļāđāļŦāđāļŠāļāļāļāļēāļĄ āđāļĄāđāļĄāļĩāđāļāļāđāļŦāđāļāļĢāļ§āļāļŠāļāļ āđāļĄāđāļĄāļĩāļŠāļāļēāļāļ°āđāļŦāđāļāļīāļāđāļāļĢāđāļāļāđāļāđāļēāļĄāđāļāļīāļĢāđāļāđāļ§āļāļĢāđ load balancer āļŠāļēāļĄāļēāļĢāļāļŠāđāļāļāļģāļāļāđāļāļĒāļąāļāļāļīāļāļŠāđāļāļāļāđāđāļāļīāļĢāđāļāđāļ§āļāļĢāđāđāļāđ āđāļāđāđāļāļĒāđāļĄāđāļāđāļāļāļāļĢāļ°āļŠāļēāļāļāļēāļ
āļāđāļēāļĄāđāļāđāļĄāļāđāļĨāļ°āļāđāļēāļĄāļāđāļāļāļēāļ
JWT āļāļģāļāļēāļāļāđāļēāļĄāđāļāđāļĄāļāđāļĨāļ°āļāđāļāļāļēāļāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļāđāļāđāļāļēāļĄāļāļĢāļĢāļĄāļāļēāļāļī āđāļāđāļāđāļāļāļĩāđāļāļāļāđāļāļĒ auth.example.com āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāđāļēāļāļķāļ api.example.com āđāļĨāļ° admin.example.com āļŠāļīāđāļāļāļĩāđāļāļģāđāļŦāđ JWT āđāļāđāļāļĢāļēāļāļāļēāļāļāļāļāļĢāļ°āļāļ single sign-on (SSO)
āļāļēāļĢāļāļāļļāļāļēāļāđāļāļāļĨāļ°āđāļāļĩāļĒāļ
payload āļāļāļ JWT āļŠāļēāļĄāļēāļĢāļāļĢāļ§āļĄ claims āļāļĩāđāļāļģāļŦāļāļāđāļāļāļŠāļģāļŦāļĢāļąāļāļāļāļāļēāļ āļŠāļīāļāļāļīāđ āđāļĨāļ°āļāļēāļĢāđāļāđāļāļŠāļĄāļēāļāļīāļāļāļāļāđāļāļĢ:
{
"sub": "user_abc123",
"role": "admin",
"permissions": ["read:users", "write:users", "delete:users"],
"org_id": "org_xyz789",
"iat": 1516239022,
"exp": 1516325422
}
āđāļāļīāļĢāđāļāđāļ§āļāļĢāđ API āļāđāļēāļ claims āđāļŦāļĨāđāļēāļāļĩāđāđāļāļĒāļāļĢāļāļāļēāļāđāļāđāļāđāļāđāļāļĒāđāļĄāđāļāđāļāļāļāđāļāļŦāļēāđāļāļīāđāļĄāđāļāļīāļĄ
JWT āļŠāļģāļŦāļĢāļąāļ Single Sign-On (SSO)
Single sign-on āđāļāđāļāļŦāļāļķāđāļāđāļāļāļĢāļāļĩāļāļēāļĢāđāļāđāļāļēāļ JWT āļāļĩāđāļāļāļāđāļāļĒāļāļĩāđāļŠāļļāļ āđāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄ SSO āļāļąāđāļ§āđāļ:
- āļāļđāđāđāļāđāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļ identity provider (IdP) â āđāļāđāļ Auth0, Okta āļŦāļĢāļ·āļ Keycloak
- IdP āļāļāļ JWT āļāļĩāđāļĨāļāļāļēāļĄāļāđāļ§āļĒ private key āļāļāļāļāļ
- āļāļđāđāđāļāđāđāļŠāļāļ JWT āļāļĩāđāļāđāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļŦāļĨāļēāļĒāļāļąāļ§
- āđāļāđāļĨāļ°āđāļāļāļāļĨāļīāđāļāļāļąāļāļāļĢāļ§āļāļŠāļāļāļĨāļēāļĒāđāļāđāļāđāļāļĒāđāļāđ public key āļāļāļ IdP
- āđāļāđāļĨāļ°āđāļāļāļāļĨāļīāđāļāļāļąāļāđāļāļ·āđāļāļāļ·āļāđāļāđāļāđāļāđāļāļĒāđāļĄāđāļāđāļāļāļŠāļ·āđāļāļŠāļēāļĢāļāļąāļ IdP āđāļāļāļļāļāļāļģāļāļ
āļĢāļđāļāđāļāļāļāļĩāđāļāļģāđāļŦāđāļāļēāļĢāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļāļāļĢāļąāđāļāđāļāļĩāļĒāļ§āļŠāļēāļĄāļēāļĢāļāđāļŦāđāļŠāļīāļāļāļīāđāļāļēāļĢāđāļāđāļēāļāļķāļāļāļĢāļīāļāļēāļĢāļĄāļēāļāļĄāļēāļĒ â āļāļĩāđāļĄāļĨ, āļāļĩāđāđāļāđāļāđāļāļĨāđ, āļāļēāļĢāļāļąāļāļāļēāļĢāđāļāļĢāļāļāļēāļĢ, āļĢāļ°āļāļ HR â āđāļāļĒāđāļĄāđāļāđāļāļāđāļŦāđāđāļāđāļĨāļ°āļāļĢāļīāļāļēāļĢāđāļāđāđāļāļĨāļ§āđāļāļēāļĢāđāļāđāļēāļŠāļđāđāļĢāļ°āļāļāļāļāļāļāļąāļ§āđāļāļ
āđāļāļ§āļāļāļīāļāļąāļāļīāļāļĩāđāļāļĩāļāļĩāđāļŠāļļāļāļāđāļēāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļ JWT
āđāļĄāđāļ§āđāļē JWT āļāļ°āđāļŦāđāļĢāļēāļāļāļēāļāļāļĩāđāđāļāđāļāđāļāļĢāđāļāļŠāļģāļŦāļĢāļąāļāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒāļāļāļ API āđāļāđāļāļēāļĢāļāļģāđāļāđāļāđāļāļĒāđāļēāļāļāļđāļāļāđāļāļāđāļāđāļāļŠāļīāđāļāļāļģāđāļāđāļ
āđāļāđāļāđāļāđāļāđāļāđāļŦāđāļĄāļĩāļāļēāļĒāļļāļŠāļąāđāļ
āļāļąāđāļāļāđāļē claim exp (āļāļēāļĢāļŦāļĄāļāļāļēāļĒāļļ) āđāļŦāđāļĄāļĩāļĢāļ°āļĒāļ°āđāļ§āļĨāļēāļŠāļąāđāļ â 15 āļāļēāļāļĩāļāļķāļ 1 āļāļąāđāļ§āđāļĄāļāļŠāļģāļŦāļĢāļąāļ access token āđāļāđ refresh token āļāļĩāđāļĄāļĩāļāļēāļĒāļļāļĒāļēāļ§āļāļēāļāļāļ§āđāļē (āļ§āļąāļāļŦāļĢāļ·āļāļŠāļąāļāļāļēāļŦāđ) āđāļāļ·āđāļāļāļ access token āđāļŦāļĄāđāđāļāļĒāđāļĄāđāļāđāļāļāđāļŦāđāļāļđāđāđāļāđāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāđāļŦāļĄāđ
āđāļāđ HTTPS āđāļŠāļĄāļ
JWT āđāļĄāđāđāļāđāđāļāđāļēāļĢāļŦāļąāļŠ payload āļāļāļāļĄāļąāļ āđāļāļĢāļāđāļāļēāļĄāļāļĩāđāļāļąāļāļāļąāļāđāļāđāļāđāļāļŠāļēāļĄāļēāļĢāļāļāļāļāļĢāļŦāļąāļŠāđāļĨāļ°āļāđāļēāļāđāļāļ·āđāļāļŦāļēāđāļāđ āļŠāđāļ JWT āļāđāļēāļ HTTPS āđāļŠāļĄāļāđāļāļ·āđāļāļāđāļāļāļāļąāļāļāļēāļĢāļāļąāļāļāļąāļ
āļāļĢāļ§āļāļŠāļāļāļāļļāļāļāļĒāđāļēāļ
āļāļĢāļ§āļāļŠāļāļāļĨāļēāļĒāđāļāđāļāđāļŠāļĄāļ āļāļĢāļ§āļāļŠāļāļāļ§āđāļēāđāļāđāļāđāļāļĒāļąāļāđāļĄāđāļŦāļĄāļāļāļēāļĒāļļ āļĒāļ·āļāļĒāļąāļāļ§āđāļē aud (āļāļđāđāļĢāļąāļ) āļāļĢāļāļāļąāļāđāļāļāļāļĨāļīāđāļāļāļąāļāļāļāļāļāļļāļ āđāļĨāļ°āļāļāļīāđāļŠāļāđāļāđāļāđāļāļāļĩāđāļĄāļĩāļāļąāļĨāļāļāļĢāļīāļāļķāļĄāļāļĩāđāđāļĄāđāļāļēāļāļāļīāļ
āđāļāđāļāđāļāđāļāđāļāļāļĒāđāļēāļāļāļĨāļāļāļ āļąāļĒ
āļāļąāđāļāđāļāļĨāđāļāļāļāđ āđāļāđāļ JWT āđāļ HTTP-only cookies āđāļĄāļ·āđāļāđāļāđāļāđāļāđāļāđ āļŦāļĢāļ·āļāđāļāļŦāļāđāļ§āļĒāļāļ§āļēāļĄāļāļģāļŠāļģāļŦāļĢāļąāļ single-page applications āļŦāļĨāļĩāļāđāļĨāļĩāđāļĒāļ localStorage āļŠāļģāļŦāļĢāļąāļāđāļāđāļāđāļāļāļĩāđāđāļŦāđāļāļēāļĢāđāļāđāļēāļāļķāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĨāļ°āđāļāļĩāļĒāļāļāđāļāļ
āļāļ§āļēāļĄāđāļāđāļēāđāļāļāļīāļāļāļąāđāļ§āđāļāđāļāļĩāđāļĒāļ§āļāļąāļ JWT
"JWT āļāļđāļāđāļāđāļēāļĢāļŦāļąāļŠ" â āđāļĄāđāđāļāđ JWT āļāļđāļāļĨāļāļāļēāļĄ āđāļĄāđāđāļāđāļāļđāļāđāļāđāļēāļĢāļŦāļąāļŠ payload āļāļđāļāđāļāđāļēāļĢāļŦāļąāļŠāđāļāļ base64url āļāļķāđāļāļŠāļēāļĄāļēāļĢāļāļĒāđāļāļāļāļĨāļąāļāđāļāđ JWE (JSON Web Encryption) āđāļŦāđāļāļēāļĢāđāļāđāļēāļĢāļŦāļąāļŠ āđāļāđāļĄāļąāļāđāļāđāļāļāđāļāļāļģāļŦāļāļāđāļĒāļāļāđāļēāļāļŦāļēāļāļāļĩāđāđāļĄāđāđāļāđāļāļĢāļāļāļāļĨāļļāļĄāđāļāļĒ JWT āļĄāļēāļāļĢāļāļēāļ
"JWT āļāđāļāļāļāļąāļ CSRF" â āđāļĄāđāđāļāđāđāļāļĒāļāļąāļ§āļĄāļąāļāđāļāļ JWT āđāļ Authorization header āļāđāļ§āļĒāđāļāđ āđāļāđāļŦāļēāļāđāļāđāļāđāļāļāļĒāļđāđāđāļ cookie āļāđāļĒāļąāļāļāđāļāļāļāļēāļĢāļāļēāļĢāļāđāļāļāļāļąāļ CSRF
"JWT āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļāđāļāđāļēāļāļąāđāļ" â JWT āđāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļĢāļąāļāļĢāļāļāļāļ§āļēāļĄāļāļđāļāļāđāļāļ āđāļāđāļĒāļąāļāđāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļĨāļāđāļāļĨāļĩāđāļĒāļāļāđāļāļĄāļđāļĨāļāļēāļĢāļāļāļļāļāļēāļ āđāļāļŠāļāļąāļāđāļĢāđāļŠāļāļēāļāļ° āđāļĨāļ°āļāļēāļĢāđāļāļĢāđāļāđāļāļĄāļđāļĨāļāļĩāđāļāļĨāļāļāļ āļąāļĒāļĢāļ°āļŦāļ§āđāļēāļāļāļĢāļīāļāļēāļĢ
āļāļāļāļĢāļŦāļąāļŠāđāļĨāļ°āļŠāļģāļĢāļ§āļ JWT āļāļāļāđāļĨāļāđ
āđāļāđāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļāļāļĢāļŦāļąāļŠ JWT āđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļ JSON Web Token āđāļāđ āļ§āļēāļāđāļāđāļāđāļāļāļāļāļāļļāļāđāļĨāļ°āļāļđ header, payload āđāļĨāļ°āļāļąāļĨāļāļāļĢāļīāļāļķāļĄāļĨāļēāļĒāđāļāđāļāļāļĩāđāļāļāļāļĢāļŦāļąāļŠāđāļĨāđāļ§āļāļąāļāļāļĩ āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāđāļ§āļĒāđāļŦāđāļāļļāļāđāļāđāļēāđāļāļ§āđāļēāļāđāļāļĄāļđāļĨāđāļāļāļĩāđāđāļāđāļāđāļāļāļāļāļāļļāļāļāļģāļāļēāđāļĨāļ°āļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāļāļĩāđāļāļđāļāļāđāļāļ