Back to questions
X5 tech
Senior
3
Как в целом работает стандартная схема авторизации через JWT?
Companies where asked
Answer from AI
sobes.tech AI
Стандартная схема авторизации через JWT (JSON Web Token) обычно включает следующие шаги:
- Пользователь отправляет свои учетные данные (логин и пароль) на сервер.
- Сервер проверяет данные, и если они корректны, создает JWT, который содержит полезную нагрузку (например, ID пользователя, роли) и подписывает его секретным ключом.
- JWT возвращается клиенту, который сохраняет его (например, в localStorage или cookie).
- При последующих запросах клиент отправляет JWT в заголовке Authorization (обычно "Bearer <token>").
- Сервер проверяет подпись токена и, если он валиден, извлекает из него информацию о пользователе и разрешает доступ к защищенным ресурсам.
В Go это часто реализуется с помощью библиотек для работы с JWT, например, github.com/dgrijalva/jwt-go.
Пример создания токена:
import (
"github.com/dgrijalva/jwt-go"
"time"
)
func GenerateJWT(userID string, secret []byte) (string, error) {
token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
"user_id": userID,
"exp": time.Now().Add(time.Hour * 72).Unix(),
})
return token.SignedString(secret)
}
Таким образом, JWT позволяет безопасно передавать информацию о пользователе без необходимости хранить сессию на сервере.