@@ -15,26 +15,26 @@ public class JwtBearerService(IOptions<JwtBearerSettings> jwtBearerSettingsOptio
1515 /// <summary>
1616 /// Gets the JWT Bearer settings used by this service.
1717 /// </summary>
18- protected readonly JwtBearerSettings jwtBearerSettings = jwtBearerSettingsOptions . Value ;
18+ protected JwtBearerSettings JwtBearerSettings { get ; } = jwtBearerSettingsOptions . Value ;
1919
2020 /// <inheritdoc />
2121 public virtual Task < string > CreateTokenAsync ( string userName , IList < Claim > ? claims = null , string ? issuer = null , string ? audience = null , DateTime ? absoluteExpiration = null )
2222 {
2323 claims ??= [ ] ;
24- claims . Update ( jwtBearerSettings . NameClaimType , userName ) ;
24+ claims . Update ( JwtBearerSettings . NameClaimType , userName ) ;
2525 claims . Update ( JwtRegisteredClaimNames . Jti , Guid . NewGuid ( ) . ToString ( ) ) ;
2626
2727 var now = DateTime . UtcNow ;
2828
2929 var securityTokenDescriptor = new SecurityTokenDescriptor ( )
3030 {
31- Subject = new ClaimsIdentity ( claims , jwtBearerSettings . SchemeName , jwtBearerSettings . NameClaimType , jwtBearerSettings . RoleClaimType ) ,
32- Issuer = issuer ?? jwtBearerSettings . Issuers ? . FirstOrDefault ( ) ,
33- Audience = audience ?? jwtBearerSettings . Audiences ? . FirstOrDefault ( ) ,
31+ Subject = new ClaimsIdentity ( claims , JwtBearerSettings . SchemeName , JwtBearerSettings . NameClaimType , JwtBearerSettings . RoleClaimType ) ,
32+ Issuer = issuer ?? JwtBearerSettings . Issuers ? . FirstOrDefault ( ) ,
33+ Audience = audience ?? JwtBearerSettings . Audiences ? . FirstOrDefault ( ) ,
3434 IssuedAt = now ,
35- NotBefore = now . Add ( - jwtBearerSettings . ClockSkew ) ,
36- Expires = absoluteExpiration ?? ( jwtBearerSettings . ExpirationTime . GetValueOrDefault ( ) > TimeSpan . Zero ? now . Add ( jwtBearerSettings . ExpirationTime ! . Value ) : DateTime . MaxValue ) ,
37- SigningCredentials = new SigningCredentials ( new SymmetricSecurityKey ( Encoding . UTF8 . GetBytes ( jwtBearerSettings . SecurityKey ) ) , jwtBearerSettings . Algorithm )
35+ NotBefore = now . Add ( - JwtBearerSettings . ClockSkew ) ,
36+ Expires = absoluteExpiration ?? ( JwtBearerSettings . ExpirationTime . GetValueOrDefault ( ) > TimeSpan . Zero ? now . Add ( JwtBearerSettings . ExpirationTime ! . Value ) : DateTime . MaxValue ) ,
37+ SigningCredentials = new SigningCredentials ( new SymmetricSecurityKey ( Encoding . UTF8 . GetBytes ( JwtBearerSettings . SecurityKey ) ) , JwtBearerSettings . Algorithm )
3838 } ;
3939
4040 var tokenHandler = new JsonWebTokenHandler ( ) ;
@@ -55,23 +55,23 @@ public virtual async Task<ClaimsPrincipal> ValidateTokenAsync(string token, bool
5555
5656 var tokenValidationParameters = new TokenValidationParameters
5757 {
58- AuthenticationType = jwtBearerSettings . SchemeName ,
59- NameClaimType = jwtBearerSettings . NameClaimType ,
60- RoleClaimType = jwtBearerSettings . RoleClaimType ,
61- ValidateIssuer = jwtBearerSettings . Issuers ? . Any ( ) ?? false ,
62- ValidIssuers = jwtBearerSettings . Issuers ,
63- ValidateAudience = jwtBearerSettings . Audiences ? . Any ( ) ?? false ,
64- ValidAudiences = jwtBearerSettings . Audiences ,
58+ AuthenticationType = JwtBearerSettings . SchemeName ,
59+ NameClaimType = JwtBearerSettings . NameClaimType ,
60+ RoleClaimType = JwtBearerSettings . RoleClaimType ,
61+ ValidateIssuer = JwtBearerSettings . Issuers ? . Any ( ) ?? false ,
62+ ValidIssuers = JwtBearerSettings . Issuers ,
63+ ValidateAudience = JwtBearerSettings . Audiences ? . Any ( ) ?? false ,
64+ ValidAudiences = JwtBearerSettings . Audiences ,
6565 ValidateIssuerSigningKey = true ,
66- IssuerSigningKey = new SymmetricSecurityKey ( Encoding . UTF8 . GetBytes ( jwtBearerSettings . SecurityKey ) ) ,
66+ IssuerSigningKey = new SymmetricSecurityKey ( Encoding . UTF8 . GetBytes ( JwtBearerSettings . SecurityKey ) ) ,
6767 RequireExpirationTime = true ,
6868 ValidateLifetime = validateLifetime ,
69- ClockSkew = jwtBearerSettings . ClockSkew
69+ ClockSkew = JwtBearerSettings . ClockSkew
7070 } ;
7171
7272 var validationResult = await tokenHandler . ValidateTokenAsync ( token , tokenValidationParameters ) ;
7373
74- if ( ! validationResult . IsValid || validationResult . SecurityToken is not JsonWebToken jsonWebToken || jsonWebToken . Alg != jwtBearerSettings . Algorithm )
74+ if ( ! validationResult . IsValid || validationResult . SecurityToken is not JsonWebToken jsonWebToken || jsonWebToken . Alg != JwtBearerSettings . Algorithm )
7575 {
7676 throw new SecurityTokenException ( "Token is expired or invalid" , validationResult . Exception ) ;
7777 }
@@ -86,7 +86,7 @@ public virtual async Task<string> RefreshTokenAsync(string token, bool validateL
8686 var principal = await ValidateTokenAsync ( token , validateLifetime ) ;
8787 var claims = ( principal . Identity as ClaimsIdentity ) ! . Claims . ToList ( ) ;
8888
89- var userName = claims . First ( c => c . Type == jwtBearerSettings . NameClaimType ) . Value ;
89+ var userName = claims . First ( c => c . Type == JwtBearerSettings . NameClaimType ) . Value ;
9090 var issuer = claims . FirstOrDefault ( c => c . Type == JwtRegisteredClaimNames . Iss ) ? . Value ;
9191 var audience = claims . FirstOrDefault ( c => c . Type == JwtRegisteredClaimNames . Aud ) ? . Value ;
9292
0 commit comments