Можно ли войти / пройти аутентификацию по URL-ссылке, которая действительна в течение определенного периода времени? [NET Core 3.1 и Angular 9]

#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. Должна быть библиотека с такой функциональностью, она довольно распространена. Если ничего другого, ссылки для сброса пароля / активации учетной записи работают таким образом в некоторых фреймворках.