Неверная подпись JWT - PullRequest
       3

Неверная подпись JWT

0 голосов
/ 20 сентября 2019

Я знаю.Я знаю.Множество вопросов с таким точным названием.Но из всех, на которые я смотрел, я не могу найти тот, который создает JWT, используя List<Claim>, issuer и audience.

    private string GetTokenString()
    {
        var claims = new List<Claim>()
        {
            new Claim("claim1", "foo-anything"),
            new Claim("claim2", "bar-anything")
        };

        string keyValue = "1234567890qwertyuiopasdfghjklzxcvbnm";  // NOT THE REAL KEY (changed for this SO question)
        var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(keyValue));

        var jwtToken = new JwtSecurityToken
          (
              issuer: "https://xxxxxx.net",
              audience: "https://www.xxxxxx.com",
              claims: claims,
              signingCredentials: new SigningCredentials(key, SecurityAlgorithms.HmacSha256Signature),
              expires: DateTime.Now.AddMinutes(30)
          );

        var handler = new JwtSecurityTokenHandler();
        string tokenString = handler.WriteToken(jwtToken);

        return tokenString;
    }

Тогда, если явозьмите tokenString и подключите его к https://jwt.io/, Я получу

Недопустимая подпись

Что-то не так с тем, как я создаю JWT?

enter image description here

1 Ответ

1 голос
/ 20 сентября 2019

См. Кодировку base64 вашего подписывающего ключа.

1234567890qwertyuiopasdfghjklzxcvbnm

выглядит так:

MTIzNDU2Nzg5MHF3ZXJ0eXVpb3Bhc2RmZ2hqa2x6eGN2Ym5t

Пожалуйста, используйте это значение для проверки сгенерированного токена, в данном случае флажокдолжны быть отмечены.

Если вы оставите флажок пустым, используйте то же значение, что и в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...