예제 #1
0
        public static string GenerateJwt(UserDto userDto)
        {
            var now = DateTime.UtcNow;

            var jwt = new JwtSecurityToken(
                AuthOptions.Issuer,
                AuthOptions.Audience,
                notBefore: now,
                claims: new List <Claim>
            {
                new Claim(ClaimsIdentity.DefaultNameClaimType, userDto.Name),
                new Claim("surname", userDto.Surname),
                new Claim("login", userDto.Login),
                new Claim(ClaimsIdentity.DefaultRoleClaimType, userDto.Role.ToString())
            },
                expires: now.Add(TimeSpan.FromMinutes(AuthOptions.Lifetime)),
                signingCredentials: new SigningCredentials(AuthOptions.GetSymmetricSecurityKey(),
                                                           SecurityAlgorithms.HmacSha256));

            var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt);

            return(encodedJwt);
        }
예제 #2
0
 public TokenService(AuthOptions authOpions,
                     RoleRepository roleRepository)
 {
     _authOpions     = authOpions;
     _roleRepository = roleRepository;
 }