public Models.Client.User Authentication(Models.Client.Login credentials) { Models.Client.User user = Mapper.Map <Models.Data.User, Models.Client.User>(this.Db.Users?.FirstOrDefault(a => a.UserName == credentials.UserName && a.Password == credentials.Password)); if (user == null) { return(null); } var role = "User"; switch ((Models.Client.UserType)user.Role) { case Models.Client.UserType.Admin: role = "Admin"; break; case Models.Client.UserType.User: role = "User"; break; default: break; } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, user.Id.ToString()), new Claim(ClaimTypes.Role, role) }), Expires = DateTime.UtcNow.AddSeconds(30), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256) }; var token = tokenHandler.CreateToken(tokenDescriptor); user.Token = tokenHandler.WriteToken(token); return(user); }
public Models.Client.User Authentication(Models.Client.Login credentials) { return(Mapper.Map <Models.Data.User, Models.Client.User>(this.Db.Users?.FirstOrDefault(a => a.UserName == credentials.UserName && a.Password == credentials.Password))); }