예제 #1
0
        /// <summary>
        /// 重写 Handler 添加自动刷新收取逻辑
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override async Task HandleAsync(AuthorizationHandlerContext context)
        {
            string url = context.GetCurrentHttpContext().Request.GetRefererUrlAddress();

            if (url.Contains("xx.com")) //if (url.Contains("localhost"))
            {
                var isAuthenticated     = context.User.Identity.IsAuthenticated;
                var pendingRequirements = context.PendingRequirements;
                foreach (var requirement in pendingRequirements)
                {
                    // 授权成功
                    context.Succeed(requirement);
                }
            }
            else
            {
                // 自动刷新 token
                if (JWTEncryption.AutoRefreshToken(context, context.GetCurrentHttpContext()))
                {
                    await AuthorizeHandleAsync(context);
                }
                else
                {
                    context.Fail();    // 授权失败
                }
            }
        }
예제 #2
0
 /// <summary>
 /// 重写 Handler 添加自动刷新
 /// </summary>
 /// <param name="context"></param>
 /// <returns></returns>
 public override async Task HandleAsync(AuthorizationHandlerContext context)
 {
     // 自动刷新Token
     if (JWTEncryption.AutoRefreshToken(context, context.GetCurrentHttpContext(),
                                        App.GetOptions <JWTSettingsOptions>().ExpiredTime,
                                        App.GetOptions <RefreshTokenSettingOptions>().ExpiredTime))
     {
         await AuthorizeHandleAsync(context);
     }
     else
     {
         context.Fail(); // 授权失败
         DefaultHttpContext currentHttpContext = context.GetCurrentHttpContext();
         if (currentHttpContext == null)
         {
             return;
         }
         currentHttpContext.SignoutToSwagger();
     }
 }