Esempio n. 1
0
        public override ServerAccessGrant Token()
        {
            base.ValidClient();
            ServerAccessGrant accessGrant = OAuthService.GetServerAccessGrantByRefreshToken(RefreshToken);

            if (accessGrant == null)
            {
                OAuthError(AccessTokenRequestErrorCode.InvalidRequest, "refresh token invalid", 400);
            }
            if (ClientId != accessGrant.ClientId)
            {
                OAuthError(AccessTokenRequestErrorCode.InvalidRequest, "client id is not match.", 400);
            }

            //如果授权刷新凭证不在有效
            if (!accessGrant.IsRefreshEffective())
            {
                OAuthService.DeleteServerAccessGrant(accessGrant);
                OAuthError(AccessTokenRequestErrorCode.InvalidRequest, "refresh token expire", 400);
            }

            var refreshedToken = new ServerAccessGrant(accessGrant.ClientId, accessGrant.UserId)
            {
                Scope     = accessGrant.Scope,
                GrantType = accessGrant.GrantType
            };

            OAuthService.CreateServerAccessGrant(refreshedToken);
            OAuthService.DeleteServerAccessGrant(accessGrant);
            return(refreshedToken);
        }
        /// <summary>
        /// 创建服务端授权对象
        /// </summary>
        /// <param name="clientId">客户端ID</param>
        /// <param name="userId">用户ID</param>
        /// <returns>服务端授权对象</returns>
        public ServerAccessGrant CreateServerAccessGrant(int clientId, int userId = 0)
        {
            ServerAccessGrant accessGrant = new ServerAccessGrant(clientId, userId);

            serverAccessRepository.Create(accessGrant);
            return(accessGrant);
        }
Esempio n. 3
0
        public static bool TryValidToken(out ServerAccessGrant accessGrant)
        {
            var context = HttpContext.Current;

            if (context.IsAvailable())
            {
                accessGrant = oauthService.TryGetToken(new HttpContextWrapper(context));
                if (accessGrant != null && accessGrant.IsEffective())
                {
                    context.Items[ContextAccessGrantKey] = accessGrant;
                    return(true);
                }
            }
            accessGrant = null;
            return(false);
        }
 public void DeleteServerAccessGrant(ServerAccessGrant accessGrant)
 {
     serverAccessRepository.Delete(accessGrant);
 }
 public void CreateServerAccessGrant(ServerAccessGrant accessGrant)
 {
     serverAccessRepository.Create(accessGrant);
 }
 protected virtual void OnValidateSuccess(AuthorizationContext filterContext, ServerAccessGrant accessGrant)
 {
 }