Недавно я начал работать с аутентификацией на основе JWT. После входа пользователя создается токен, который будет выглядеть как
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ".
Он состоит из трех частей, каждая из которых разделена точкой (.). Первая часть - это заголовок, который закодирован в Base64. После расшифровки мы получим что-то вроде
{
"alg": "HS256", //Algorithm used
"typ": "JWT"
}
Вторая часть - это утверждения и кодировка Base64. После расшифровки мы получим что-то вроде
{
"sub": "1234567890",
"name": "John Doe",
"admin": true
}
Третья часть является подписью и генерируется с помощью
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
*secret base64 encoded*
)
Теперь, что это за секретный ключ и как его сгенерировать?
Я попробовал какой-нибудь онлайн генератор типа "http://kjur.github.io/jsjws/tool_jwt.html" но Динт получить большую помощь.