Есть Web приложение с использованием JWT токена. Сайт отдает Access и Refresh токены.
Собственно при использовании RefreshToken'а как я понял нам надо убить все старые AccessToken'ы.
Никак не могу понять, как это сделать на Asp.net Core? Ведь мы их не храним как Refresh, они известны только пользователю.
Можно конечно сохранять все токены в некой таблице:
Token | isValid
00000 | false
00001 | true
И в дальнейшем просто проверять статус токена, но какое то это странное как по мне решение, да и как даже это реализовать, ведь мы должны как то отловить заход пользователя через старый токен...
Вы можете преобразовать токен в модель и обратно с помощью библиотеки Jose-jwt.
Token newToken = new Token();
EncodeToken(newToken, users);
public partial class Users
{
public int Id { get; set; }
public string Login { get; set; }
public string Password { get; set; }
}
private static void EncodeToken(Token token, Users users)
{
var secretKey = new byte[]
{
164, 60, 194, 0, 161, 189, 41, 38, 130, 89, 141, 164, 45, 170, 159,
209, 69, 137, 243, 216, 191, 131, 47, 250, 32, 107, 231, 117, 37, 158, 225, 234
};
token.id = users.Id;
token.Key = Jose.JWT.Encode(users, secretKey, Jose.JwsAlgorithm.HS256);
}
private static Users DecodeToken(string token)
{
var secretKey = new byte[]
{
164, 60, 194, 0, 161, 189, 41, 38, 130, 89, 141, 164, 45, 170, 159, 209,
69, 137, 243, 216, 191, 131, 47, 250, 32, 107, 231, 117, 37, 158, 225, 234
};
var users = Jose.JWT.Decode<Users>(token, secretKey);
return users;
}
Вы можете добавить в класс юзера время действия токена и сверять с текущем временем. Ну или сделать уже другие проверки, необходимые вам(например сверять пароль)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите, как прокрутить HScrollBar в Panel таким образом, чтобы при наведении мыши в Panel активировался HScrollBar и ролик мыши мог им управлять?
Подскажите как прокрутить Panel (роликом мыши) через AutoScroll широким шагом, чтобы ширина Panel делилась на две частиК примеру ширина Panel до сужения...
Если какие-то средства, которые позволяют писать запрос(Например, всякие JOIN'ы) к ADONET DataSet и получить в результате какую-нибудь вьюху?
Как правильно поступить в ситуации, в методе находится ряд условий, если они удовлетворяются, то возвращается значение из словаряКак поступить,...