/// <summary> /// 构造函数 /// </summary> /// <param name="httpContextAccessor"></param> /// <param name="options"></param> /// <param name="userRepository"></param> public AuthorizationManager(IHttpContextAccessor httpContextAccessor , IOptions <JWTSettingsOptions> options , IRepository <User> userRepository) { _httpContextAccessor = httpContextAccessor; _jwtSettings = options.Value; _userRepository = userRepository; }
/// <summary> /// 验证 Token /// </summary> /// <param name="accessToken"></param> /// <param name="jwtSettings"></param> /// <returns></returns> public static (bool IsValid, JsonWebToken Token) Validate(string accessToken, JWTSettingsOptions jwtSettings) { var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtSettings.IssuerSigningKey)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var tokenValidationParameters = CreateTokenValidationParameters(jwtSettings); if (tokenValidationParameters.IssuerSigningKey == null) { tokenValidationParameters.IssuerSigningKey = creds.Key; } var tokenHandler = new JsonWebTokenHandler(); try { var tokenValidationResult = tokenHandler.ValidateToken(accessToken, tokenValidationParameters); if (!tokenValidationResult.IsValid) { return(false, null); } var jsonWebToken = tokenValidationResult.SecurityToken as JsonWebToken; return(true, jsonWebToken); } catch { return(false, default);
/// <summary> /// 构造函数 /// </summary> /// <param name="httpContextAccessor"></param> /// <param name="options"></param> public AuthorizationManager(IHttpContextAccessor httpContextAccessor , IOptions <JWTSettingsOptions> options) { _httpContextAccessor = httpContextAccessor; _jwtSettings = options.Value; }
/// <summary> /// 构造函数 /// </summary> /// <param name="options"></param> public JWTAuthorizationHandler(IOptions <JWTSettingsOptions> options) { _jwtSettings = options.Value; }