Exemplo n.º 1
0
        public async Task <TokensResponse> LoginAsync(LoginModel loginModel)
        {
            if (!loginModel.IsValid)
            {
                throw new ArgumentException("Login model is invalid");
            }

            var existedUser =
                await _context.Users.FirstOrDefaultAsync(user => EF.Functions.Like(user.Email.ToUpper(),
                                                                                   loginModel.Email.Trim().ToUpper()));

            if (existedUser == null || !existedUser.IsEnabled ||
                !PasswordHasher.VerifyPassword(loginModel.Password, existedUser.PasswordHash))
            {
                throw new ArgumentException("Passwords don't match");
            }

            return(await _tokenProvider.GenerateTokensAsync(existedUser));
        }