Example #1
0
 /// <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;
 }
Example #2
0
        /// <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;
 }