示例#1
0
        public string Create(UserClaims userClaims)
        {
            if (userClaims == null)
            {
                throw new ArgumentNullException(nameof(userClaims));
            }

            var tokenId = Guid.NewGuid();
            var claims  = new List <Claim> {
                new("TokenId", tokenId.ToString())
            };

            claims.AddRange(userClaims.ToTokenClaims());

            var jwtHeader  = new JwtHeader(_tokenSigningCredentials);
            var jwtPayload = new JwtPayload(
                issuer: _jwtConfig.Issuer,
                audience: _jwtConfig.Audience,
                claims: claims,
                notBefore: null,
                expires: DateTime.UtcNow.AddMinutes(_jwtConfig.AccessTokenExpirationInMinutes));

            var jwtToken = new JwtSecurityToken(jwtHeader, jwtPayload);
            var tokenStr = _jwtSecurityTokenHandler.WriteToken(jwtToken);

            return(tokenStr);
        }
示例#2
0
        private JwtSecurityToken CreateJwtToken(UserClaims userClaims, Guid tokenId)
        {
            var claims = new List <Claim> {
                new Claim("TokenId", tokenId.ToString())
            };

            claims.AddRange(userClaims.ToTokenClaims());

            var jwtPayload = new JwtPayload(
                issuer: _jwtConfig.Issuer,
                audience: _jwtConfig.Audience,
                claims: claims,
                notBefore: null,
                expires: DateTime.UtcNow.AddDays(_jwtConfig.RefreshTokenExpirationInDays));

            var jwtHeader = new JwtHeader(_tokenSigningCredentials);

            return(new JwtSecurityToken(jwtHeader, jwtPayload));
        }