#angular #authentication #asp.net-web-api #asp.net-core-3.1 #autologin
#angular #аутентификация #asp.net-web-api #asp.net-core-3.1 #автологин
Вопрос:
Как говорится в теме, я хотел бы сгенерировать URL-ссылку (действительную в течение определенного периода времени), которая позволила бы проходить аутентификацию с помощью web api (Core 3.1), просто щелкнув по ней (пользователю не нужно вводить логин или пароль).). После этого сгенерируйте токен JWT Baer, чтобы получить его из ответа и сохранить на сайте сайта (Angluar 9). К сожалению, я не могу найти никаких примеров этого механизма.
Токен генерируется этим методом:
private string CreateBaererToken(IList<Claim> claims)
{
var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:SecretKey"]));
var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);
var dateNow = DateTime.UtcNow;
var tokenOptions = new JwtSecurityToken(
issuer: _configuration["JWT:Issuer"],
audience: _configuration["JWT:Audience"],
notBefore: dateNow,
claims: claims,
expires: dateNow.AddHours(1),
signingCredentials: signinCredentials
);
return new JwtSecurityTokenHandler().WriteToken(tokenOptions);
}
Комментарии:
1. Вы говорите о волшебных ссылках?
2. @BojanKogoj Я так думаю. Потому что я не хочу отправлять какие-либо учетные данные пользователя, такие как электронная почта или пароль, в параметрах строки запроса. Просто сгенерирован какой-то секретный ключ, который будет действителен в течение определенного периода времени. Но я также хотел бы сохранить недавнюю возможность входа в систему с помощью электронной почты и пароля стандартным способом.
3. Должна быть библиотека с такой функциональностью, она довольно распространена. Если ничего другого, ссылки для сброса пароля / активации учетной записи работают таким образом в некоторых фреймворках.