Example #1
0
        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);
        }