renamed and optimised

master
Young 7 months ago
parent 88174fda38
commit 3c739b6e42

@ -14,7 +14,7 @@ public interface ITokenBuilder
void SetUserContext(TokenValidatedContext context); void SetUserContext(TokenValidatedContext context);
TokenInfo GenerateJwtTokenInfo(IReadOnlyCollection<Claim> claims); JwtTokenInfo GenerateJwtTokenInfo(IReadOnlyCollection<Claim> claims);
} }
public class TokenBuilder( public class TokenBuilder(
@ -46,16 +46,16 @@ public class TokenBuilder(
throw new NullReferenceException(nameof(IUserContext)); throw new NullReferenceException(nameof(IUserContext));
var principal = context.Principal ?? throw new NullReferenceException(nameof(context.Principal)); var principal = context.Principal ?? throw new NullReferenceException(nameof(context.Principal));
userContext.Id = long.Parse( userContext.Id = long.Parse(
principal.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.NameId)?.Value); principal.Claims.First(c => c.Type == JwtRegisteredClaimNames.NameId).Value);
userContext.Username = userContext.Username =
principal.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.UniqueName)?.Value!; principal.Claims.First(c => c.Type == JwtRegisteredClaimNames.UniqueName).Value;
userContext.Name = principal.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Name)?.Value!; userContext.Name = principal.Claims.First(c => c.Type == JwtRegisteredClaimNames.Name).Value;
userContext.Email = principal.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Email)?.Value!; userContext.Email = principal.Claims.First(c => c.Type == JwtRegisteredClaimNames.Email).Value;
userContext.RoleIds = principal.Claims.Where(c => c.Type == ClaimTypes.Role).Select(c => c.Value).ToArray(); userContext.RoleIds = principal.Claims.Where(c => c.Type == ClaimTypes.Role).Select(c => c.Value).ToArray();
userContext.RemoteIpAddress = context.HttpContext.GetRequestIp(); userContext.RemoteIpAddress = context.HttpContext.GetRequestIp()!;
} }
public TokenInfo GenerateJwtTokenInfo(IReadOnlyCollection<Claim> claims) public JwtTokenInfo GenerateJwtTokenInfo(IReadOnlyCollection<Claim> claims)
{ {
var jwtToken = new JwtSecurityToken( var jwtToken = new JwtSecurityToken(
issuer: jwtOptions.Issuer, issuer: jwtOptions.Issuer,
@ -65,7 +65,7 @@ public class TokenBuilder(
expires: DateTime.Now.AddSeconds(jwtOptions.Expiration), expires: DateTime.Now.AddSeconds(jwtOptions.Expiration),
signingCredentials: jwtOptions.SigningCredentials); signingCredentials: jwtOptions.SigningCredentials);
var token = jwtSecurityTokenHandler.WriteToken(jwtToken); var token = jwtSecurityTokenHandler.WriteToken(jwtToken);
return new TokenInfo(encryptionService.Encrypt(token), jwtOptions.Expiration, return new JwtTokenInfo(encryptionService.Encrypt(token), jwtOptions.Expiration,
JwtBearerDefaults.AuthenticationScheme); JwtBearerDefaults.AuthenticationScheme);
} }
} }

@ -1,6 +1,6 @@
namespace Infrastructure.Security; namespace Infrastructure.Security;
public class TokenInfo(string token, double expiredIn, string tokenType) public class JwtTokenInfo(string token, double expiredIn, string tokenType)
{ {
public string? Token { get; } = token; public string? Token { get; } = token;
Loading…
Cancel
Save