コード例 #1
0
        public static IServiceCollection AddJwtTokenParameters(this IServiceCollection serviceCollection, Action <JwtTokenParameters> configure = null)
        {
            var jwtTokenParameters = new JwtTokenParameters();

            if (configure != null)
            {
                configure.Invoke(jwtTokenParameters);
            }

            var serviceProvider = serviceCollection.BuildServiceProvider();
            var configuration   = serviceProvider.GetRequiredService <IConfiguration>();

            configuration.GetSection(JwtTokenParameters.ConfigurationSection).Bind(jwtTokenParameters);

            serviceCollection.AddSingleton(jwtTokenParameters);

            return(serviceCollection);
        }
コード例 #2
0
        public static ClaimsPrincipal ReadJwt(this JwtTokenParameters jwtTokenParameters, string jwt)
        {
            if (!jwtTokenParameters.IsValid)
            {
                return(null);
            }

            var tokenValidationParameters = new TokenValidationParameters()
            {
                ValidIssuer   = jwtTokenParameters.Issuer,
                ValidAudience = jwtTokenParameters.Audience,

                IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtTokenParameters.Key))
            };

            var tokenHandler = new JwtSecurityTokenHandler();

            return(tokenHandler.ValidateToken(jwt, tokenValidationParameters, out _));
        }
コード例 #3
0
        public static string WriteJwt(this JwtTokenParameters jwtTokenParameters, ClaimsIdentity claimsIdentity, TimeSpan expires)
        {
            if (!jwtTokenParameters.IsValid)
            {
                return(null);
            }

            var td = new SecurityTokenDescriptor
            {
                Subject  = claimsIdentity,
                Expires  = DateTime.UtcNow.Add(expires),
                Issuer   = jwtTokenParameters.Issuer,
                Audience = jwtTokenParameters.Audience,

                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtTokenParameters.Key)), SecurityAlgorithms.HmacSha256Signature)
            };

            var tokenHandler = new JwtSecurityTokenHandler();
            var token        = tokenHandler.CreateToken(td);

            return(tokenHandler.WriteToken(token));
        }
コード例 #4
0
 public static string WriteJwt(this JwtTokenParameters jwtTokenParameters, ClaimsIdentity claimsIdentity)
 {
     return(jwtTokenParameters.WriteJwt(claimsIdentity, defaultExpiry));
 }
コード例 #5
0
 protected ApiClientOptionsBase()
 {
     Token  = new JwtTokenParameters();
     ApiKey = new ApiKeyParameters();
 }