public async Task <UserLoginResponseViewModel> Authenticate(string email, string password) { var user = await _mediator.Send(new GetUserByEmailAndPasswordQuery { Email = email, Password = password }); if (user == null) { return(null); } if (user.IsEnabled == false) { return(null); } var userData = new UserTokenDataModel { Id = user.Id, Email = email, DisplayName = user.DisplayName, UserRole = user.UserRole }; var token = _tokenGenerator.Generate(_appSettings, userData); return(new UserLoginResponseViewModel { Token = token, Email = user.Email, DisplayName = user.DisplayName, UserRole = user.UserRole }); }
public TokenGeneratorTests() { _appSettings = new AppSettings { Secret = "STRINGU ALA BLANAOSSTRINGU ALA BLANAOS BLANAOSSTRINGU ALA BLANAOS BLANAOSSTRINGU ALA BLANAOS BLANAOSSTRINGU ALA BLANAOS", TokenLifetimeDays = 7 }; _tokenGenerator = new TokenGenerator(); User = new UserTokenDataModel { Id = 1, DisplayName = "testttt", Email = "*****@*****.**", UserRole = UserRole.Admin.ToString() }; Token = _tokenGenerator.Generate(_appSettings, User); Key = Encoding.ASCII.GetBytes(_appSettings.Secret); Validations = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(Key), ValidateIssuer = false, ValidateAudience = false }; Handler = new JwtSecurityTokenHandler(); }
public string Generate(AppSettings _appSettings, UserTokenDataModel user) { var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()), new Claim(ClaimTypes.Name, user.DisplayName), new Claim(ClaimTypes.Role, user.UserRole), new Claim(ClaimTypes.Email, user.Email) }), Expires = DateTime.Now.AddDays(_appSettings.TokenLifetimeDays), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }