public LoginGetModel Authenticate(string email, string password) { var user = context.Users .SingleOrDefault(x => x.Email == email && x.Password == ComputeSha256Hash(password)); // return null if user not found if (user == null) { return(null); } // authentication successful so generate jwt token 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.Email.ToString()), new Claim(ClaimTypes.Role, user.UserRole.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var result = new LoginGetModel { Id = user.Id, Email = user.Email, Token = tokenHandler.WriteToken(token), UserRole = user.UserRole }; var restaurantId = context.Employees.Where(e => e.UserId == user.Id).Select(e => e.RestaurantId).FirstOrDefault(); if (user.UserRole == Role.Employee) { result.RestaurantId = restaurantId; } ; // remove password before returning return(result); }
public LoginGetModel Authenticate(string username, string password) { var user = context.Users .Include(u => u.User_UserRoles) .ThenInclude(u_ur => u_ur.UserRole) .AsNoTracking() .FirstOrDefault(u => u.Username == username && u.Password == ComputeSha256Hash(password)); // return null if user not found if (user == null) { return(null); } string RoleName = user_userRoleService.GetUserRoleNameById(user.Id); //imi aduc numele rolului // authentication successful so generate jwt token 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.Username.ToString()), new Claim(ClaimTypes.Role, RoleName), //DataRegistered si rolul imi vin ca string new Claim(ClaimTypes.UserData, user.DataRegistered.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var result = new LoginGetModel { Id = user.Id, Email = user.Email, Username = user.Username, Token = tokenHandler.WriteToken(token), UserRole = user.User_UserRoles.First().UserRole.Name }; return(result); }
public LoginGetModel Authenticate(string username, string password) { var user = context.Users //.Include(u => u.UserUserRoles) //.ThenInclude(uur => uur.UserRole) .SingleOrDefault(x => x.Username == username && x.Password == ComputeSha256Hash(password)); string userRoleName = userUserRolesService.GetUserRoleNameById(user.Id); // return null if user not found if (user == null) { return(null); } // authentication successful so generate jwt token 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.Username.ToString()), new Claim(ClaimTypes.Role, userRoleName.ToString()) }), Expires = DateTime.UtcNow.AddDays(7), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); var result = new LoginGetModel { Id = user.Id, Email = user.Email, Username = user.Username, Token = tokenHandler.WriteToken(token), //UserRole = user.UserUserRoles.First().UserRole.Name UserRole = userRoleName.ToString() }; return(result); }