Как расшифровать токен Acess сервера open id connect в ядре Web API - PullRequest
0 голосов
/ 28 мая 2019

Я работаю с ASOS (Asp.net.OpenIDConnect.Server) и использую аутентификацию на предъявителя.

Мне нужно проверить время истечения токена и обновить его.

Не удалось декодировать токен доступа. Может кто-нибудь поделится, как это сделать.

1 Ответ

0 голосов
/ 29 мая 2019

Вы можете использовать JwtSecurityTokenHandler, который получается из System.IdentityModel.Tokens.Jwt:

var token = "YourToken";
var handler = new JwtSecurityTokenHandler();
var jsonToken = handler.ReadToken(token) as JwtSecurityToken;
var expire= jsonToken.Claims.First(claim => claim.Type == "exp").Value;

Обновление:

Если вы имеете в виду токены Opaque, которые зашифрованы и подписаны авторизациейсервер с использованием стека ASP.NET Core Data Protection.Затем вы используете промежуточное программное обеспечение AspNet.Security.OAuth.Validation или промежуточное программное обеспечение introspection .Для промежуточного программного обеспечения AspNet.Security.OAuth.Validation, я думаю, вы можете проверить утверждения в одном из событий OAuthValidationEvents, таких как OnCreateTicket.

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

Дата истечения срока действия токена обновления по умолчанию может быть установлена ​​глобально из опций, используя свойство RefreshTokenLifetime.Если вы не предоставите свой собственный срок действия, они действительны в течение 14 дней.

Обратите внимание, что скользящий срок действия также включен по умолчанию, что означает, что вы получаете новый токен обновления (действительный в течение 14 дней) каждый раз, когда высделать новый grant_type=refresh_token запрос.Вы можете отключить скользящий срок действия, установив для UseSlidingExpiratio n значение false.

Ссылка: https://stackoverflow.com/a/35747870/5751404

...