public IEnumerable <User> FetchByLogin(string login) { return(userObject.GetUserByLogin(login)); }
public IActionResult Login([FromBody] LoginModel user) { if (user == null) { return(BadRequest("Neplatný parametr.")); } //Ziskání uživatele z databáze IEnumerable <User> tmp = userObject.GetUserByLogin(user.Login); //Pokud uživatel s daným loginem neexistuje, tak neověřit if (tmp.Count() < 1) { return(Unauthorized()); } User tmpUser = tmp.First(); //Ověření jestli sedí hash z databáze s hashem zadaného hesla if (userObject.CheckHash(user.Password, tmpUser.Password)) { var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(this.SecretKey)); var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256); //Default hodnota - nejmenší string temporaryRole = "readOnlyUser"; switch (tmpUser.Role) { case 1: temporaryRole = "admin"; break; case 2: temporaryRole = "editableUser"; break; case 3: temporaryRole = "readOnlyUser"; break; } //Připsání role do JWT tokenu var claims = new List <Claim> { new Claim(ClaimTypes.Role, temporaryRole) }; var tokenOptions = new JwtSecurityToken( issuer: "http://localhost:5000", audience: "http://localhost:5000", claims: claims, expires: DateTime.Now.AddMinutes(15), signingCredentials: signinCredentials ); var tokenString = new JwtSecurityTokenHandler().WriteToken(tokenOptions); return(Ok(new { Token = tokenString })); } else { return(Unauthorized()); } }