Ejemplo n.º 1
0
        public async Task <AccessToken> Create(Domain.Authentication.User user, CancellationToken cancellationToken)
        {
            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
            };

            var claimsIdentity = new ClaimsIdentity(claims, "Token", ClaimsIdentity.DefaultNameClaimType,
                                                    ClaimsIdentity.DefaultRoleClaimType);

            var now     = DateTime.UtcNow;
            var expires = now.AddMinutes(_authOptions.LifeTimeMinutes);

            var jwt = new JwtSecurityToken(
                issuer: _authOptions.Issuer,
                audience: _authOptions.Audience,
                notBefore: now,
                claims: claimsIdentity.Claims,
                expires: expires,
                signingCredentials: new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_authOptions.SecretKey)),
                                                           SecurityAlgorithms.HmacSha256));

            String token = new JwtSecurityTokenHandler().WriteToken(jwt);

            return(new AccessToken(
                       value: token,
                       expiresIn: TimeSpan.FromMinutes(_authOptions.LifeTimeMinutes)));
        }
Ejemplo n.º 2
0
        public async Task <AccessToken> Create(Domain.Authentication.User user, CancellationToken cancellationToken)
        {
            var jwtSecurityToken = new JwtSecurityToken(
                _jwtOptions.Issuer,
                _jwtOptions.Audience,
                new ClaimsIdentity(new List <Claim>
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(ClaimTypes.Name, user.Name),
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.Role, user.Role.ToString())
            }, "Token", ClaimsIdentity.DefaultNameClaimType, ClaimsIdentity.DefaultRoleClaimType).Claims,
                DateTime.UtcNow,
                DateTime.UtcNow.AddMinutes(_jwtOptions.ExpiresInMinutes),
                new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtOptions.SecretKey)), SecurityAlgorithms.HmacSha256));

            var token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken);

            return(new AccessToken(token, TimeSpan.FromMinutes(_jwtOptions.ExpiresInMinutes)));
        }