Обработчик токена не может преобразовать токен в токен jwt - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь преобразовать свою строку токена в токен jwt, используя JwtSecurityTokenHandler.Но появляется сообщение об ошибке

IDX12709: CanReadToken () вернул false.JWT сформирован неправильно: «[PII скрыт]». \ NТокен должен быть в формате JWS или JWE Compact Serialization.(JWS): 'EncodedHeader.EndcodedPayload.EncodedSignature'.(JWE): 'EncodedProtectedHeader.EncodedEncryptedKey.EncodedInitializationVector.EncodedCiphertext.EncodedAuthenticationTag'.

Как решить эту проблему?

Вот мой токен 1010

1010 ** eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1bmlxdWVfbmFtZSI6ImFkbWluIiwibmJmIjoxNTUwNjM3NzcxLCJleHAiOjE1NTA2Mzg5NzEsImlhdCI6MTU1MDYzNzc3MX0.tUcoyoHgkrX3rDKl0cRLd9FwLtRprQpgYepMoiekixY
var tokenHandler = new JwtSecurityTokenHandler();
var jwtToken = tokenHandler.ReadToken(token) as JwtSecurityToken;

Вызов веб-апи

using (HttpClient client = new HttpClient())
            {
                string path = "UserMaintenance/ValidateUserId?userid=" + txtUsername.Text.Trim().ToString();
                client.BaseAddress = new Uri(GlobalData.BaseUri);
                client.DefaultRequestHeaders.Add("Authorization", "Bearer" + GlobalData.Token);
                HttpResponseMessage response = client.GetAsync(path).Result;
                if (response.IsSuccessStatusCode)
                {
                    var value = response.Content.ReadAsStringAsync().Result;
                    isValid = JsonConvert.DeserializeObject<bool>(value);
                }
            }

Вот мой GetPrincipal метод

1021 *

1 Ответ

0 голосов
/ 20 февраля 2019

Вот как я это делаю, и это работает для меня:

var token = new System.IdentityModel.Tokens.JwtSecurityToken(jwt);  

Если ваш токен не является правильно сформированным.Было бы лучше, если бы вы тоже поделились токеном.

Обновление:

Вам также необходимо удалить слово "Носитель" из начала токена (если вынет):

 var jwt = context.Request.Headers["Authorization"].Replace("Bearer ", string.Empty);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...