Я создаю веб-апи на Golang. И я хочу реализовать аутентификацию в этом API, поэтому я рассматриваю JWT.

В реализации JWT в dgrijalva/jwt-go приведен следующий пример:

token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
    "foo": "bar",
    "nbf": time.Date(2015, 10, 10, 12, 0, 0, 0, time.UTC).Unix(),
})

tokenString, err := token.SignedString(hmacSampleSecret)

Для подписи ключа используется hmacSampleSecret. Должна ли эта hmacSampleSecret быть строкой в файле .env в целях безопасности? Или это значение должно меняться и время от времени истекать?

Если последнее рекомендуется, есть ли уже реализация, которую я могу использовать?

NickTheTramp

Ответов: 1

Ответы (1)

Если вы хотите использовать алгоритм SHA256 для подписи jwt, то вам следует сгенерировать и сохранить длинный случайный секрет в вашем .env файле.

Секрет должен быть статичным, не стоит слишком беспокоиться о безопасности, практически невозможно, чтобы кто-то смог перебором найти ваш секрет.

Вам не нужно менять свой секрет :)

2022 WebDevInsider