public async Task <AuthStudentVO> AuthUserTaskAsync(string email) { if (!(await _studentRepository.FindByEmailTaskAsync(email) is StudentModel user)) { return(null); } AuthStudentVO userVO = _authStudentConverter.Parse(user); userVO.Token = _tokenService.Generate(user.StudentId, UserTypeEnum.Student); return(userVO); }
public async Task GenerateClaims(AuthStudentVO student) { var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, student.StudentId.ToString()), new Claim(ClaimTypes.Name, student.Name), new Claim(ClaimTypes.Email, student.Email), new Claim(ClaimTypes.Role, nameof(UserTypeEnum.Student)), new Claim("Disciplines", student.Disciplines), new Claim("Token", student.Token) }; var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); var authProp = new AuthenticationProperties { IssuedUtc = DateTime.UtcNow, ExpiresUtc = DateTimeOffset.UtcNow.AddHours(5), IsPersistent = true }; await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProp); }