public async Task <ControllerResponse> LogIn([FromBody] UserToLogInDto userDto) { if (!AuthorisationValidator.ValidateUserToLogIn(userDto)) { return(ControllerResponse.Warning( "Данные не введены полностью. Уточните данные запроса и повторите попытку")); } var user = _authorizationServices.LogIn(userDto.Login, userDto.Password.GetPasswordHash()); var claims = new List <Claim> { new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name), new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.ToString()), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }; var id = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var principal = new ClaimsPrincipal(id); await HttpContext.SignInAsync(principal); return(ControllerResponse.Ok()); }
public async Task <ControllerResponse> SignInUser([FromBody] UserToSignInDto userDto) { if (!AuthorisationValidator.ValidateUserToSignIn(userDto)) { return(ControllerResponse.Warning( "Введенные данные некорректны, введите все данные и повторите запрос")); } var user = userDto.IsDoctor ? _authorizationServices.SignInDoctor(userDto.Name, userDto.Login, userDto.Password.GetPasswordHash()) : _authorizationServices.SignInUser(userDto.Name, userDto.Login, userDto.Password.GetPasswordHash()); var claims = new List <Claim> { new Claim(ClaimsIdentity.DefaultNameClaimType, user.Name), new Claim(ClaimsIdentity.DefaultRoleClaimType, user.Role.ToString()), new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }; var id = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var principal = new ClaimsPrincipal(id); await HttpContext.SignInAsync(principal); return(ControllerResponse.Ok()); }