public string DecodeToken(string token) { token = token.Split(' ')[1]; if (token == null) { throw new ApiException(TOKEN_ERROR_EXCEPTION); } var tokenHandler = new JwtSecurityTokenHandler(); var validations = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = AuthOptionsHelper.GetSymmetricSecurityKey(), ValidateIssuer = false, ValidateAudience = false }; // TODO: Exception tokenHandler.ValidateToken(token, validations, out var validatedToken); var securityToken = (JwtSecurityToken)validatedToken; var result = securityToken.Claims.FirstOrDefault(x => x.Type == JwtRegisteredClaimNames.NameId)?.Value; if (result == null) { throw new ApiException(INCORRECT_TOKEN); } return(result); }
public static IServiceCollection AddIdentityServices(this IServiceCollection services) { services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = AuthOptionsHelper.GetSymmetricSecurityKey(), ValidateIssuer = true, ValidateAudience = true }; }); return(services); }
public string GenerateToken(BaseAuthDto dto) { var claims = new List <Claim> { new Claim(JwtRegisteredClaimNames.NameId, dto.UserName) }; var cred = new SigningCredentials(AuthOptionsHelper.GetSymmetricSecurityKey(), SecurityAlgorithms.HmacSha512); var tokenDescriptor = new SecurityTokenDescriptor { Issuer = AuthOptionsHelper.ISSUER, Audience = AuthOptionsHelper.AUDIENCE, Subject = new ClaimsIdentity(claims), SigningCredentials = cred }; var tokenHandler = new JwtSecurityTokenHandler(); var token = tokenHandler.CreateToken(tokenDescriptor); return(tokenHandler.WriteToken(token)); }