public async Task <TokensCortage> Login(string email, string password)
        {
            var user = await _userManager.FindByNameAsync(email);

            if (user == null)
            {
                throw new AuthenticationException();
            }

            var checkResult = await _userManager.CheckPasswordAsync(user, password);

            if (!checkResult)
            {
                throw new AuthenticationException();
            }

            var refreshToken = _tokenGenerator.GenerateRefreshToken();
            await _tokenService.AddRefreshToken(refreshToken, user);

            return(new TokensCortage()
            {
                Token = _tokenGenerator.GenerateAccessToken(user),
                RefreshToken = refreshToken
            });
        }
Exemple #2
0
        public async Task <ActionResult <Token> > LogIn(LoginRequest request)
        {
            var identity = await GetIdentity(request.Login, request.Password);

            if (identity == null)
            {
                return(BadRequest("Invalid username or password."));
            }

            var token = _tokenService.GetToken(identity);

            _tokenService.AddRefreshToken(request.Login, token.RefreshToken);

            return(token);
        }