public async Task <AuthenticationModel> Authenticate(AuthenticateModel model)
        {
            var user = await _authContext.Users.Where(u => u.Email == model.Email).FirstOrDefaultAsync();

            if (user == null)
            {
                return(null);
            }

            bool isValidPassword = _passwordHasher.VerifyHashedPassword(model.Password, user.Password);

            if (!isValidPassword)
            {
                return(null);
            }

            var jwtToken            = _tokenBuilder.GenerateToken(user);
            var authenticationModel = new AuthenticationModel
            {
                FirstName = user.FirstName,
                LastName  = user.LastName,
                Email     = user.Email,
                Token     = jwtToken
            };

            return(authenticationModel);
        }
Example #2
0
 /// <summary>
 /// Generates a JWT Token using the specified TokenRequest and SymmetricSecurityKey
 /// </summary>
 /// <param name="request">TokenRequest</param>
 /// <param name="securityKey">SymmetricSecurityKey</param>
 /// <returns>string</returns>
 public string GenerateToken(TokenRequest request, SymmetricSecurityKey securityKey)
 {
     return(_builder.GenerateToken(request, securityKey));
 }