예제 #1
0
        /// <summary>
        ///     创建合法用户的Token
        /// </summary>
        /// <param name="userId">用户Id</param>
        /// <param name="passWord">用户密码</param>
        /// <param name="signature">加密签名字符串</param>
        /// <param name="timestamp">时间戳</param>
        /// <param name="nonce">随机数</param>
        /// <param name="appid">应用接入ID</param>
        /// <returns>OperatedResult</returns>
        protected virtual ApiResult <IdentityToken> CreateIdentityToken(string userId, string passWord,
                                                                        string signature, string timestamp,
                                                                        string nonce, Guid appid)
        {
            #region  参数检查

            var checkResult = CheckRequest(userId, passWord, signature, timestamp, nonce, appid);

            if (!checkResult.State)
            {
                return(ApiResult <IdentityToken> .Fail(checkResult.Message));
            }

            #endregion

            #region 用户鉴权

            var getIdentityUser = GetIdentityUser(userId, passWord);

            if (!getIdentityUser.State)
            {
                return(ApiResult <IdentityToken> .Fail(getIdentityUser.Message));
            }

            #endregion

            #region 请求通道检查

            var getAppConfig = AppCfgService.Get(appid);

            if (!getAppConfig.State)
            {
                return(ApiResult <IdentityToken> .Fail(getAppConfig.Message));
            }
            var appConfig = getAppConfig.Data;

            #endregion

            #region 检查请求签名检查

            var checkSignatureResult = ApiAuthorize.CheckRequestSignature(signature, timestamp, nonce, appConfig);
            if (!checkSignatureResult.State)
            {
                return(ApiResult <IdentityToken> .Fail(checkSignatureResult.Message));
            }

            #endregion

            #region 生成基于Jwt Token

            var getTokenResult = ApiAuthorize.CreateIdentityToken(getIdentityUser.Data, getAppConfig.Data);
            if (!getTokenResult.State)
            {
                return(ApiResult <IdentityToken> .Fail(getTokenResult.Message));
            }

            return(ApiResult <IdentityToken> .Success(getTokenResult.Data));

            #endregion
        }
예제 #2
0
        /// <summary>
        ///     验证Token令牌是否合法
        /// </summary>
        /// <param name="token">令牌</param>
        /// <param name="appid">应用ID</param>
        /// <returns>CheckResult</returns>
        protected virtual OperatedResult <string> CheckIdentityToken(string token, Guid appid)
        {
            #region 请求参数检查

            var checkResult = CheckRequest(token, appid);

            if (!checkResult.State)
            {
                return(OperatedResult <string> .Fail(checkResult.Message));
            }

            #endregion

            #region 请求通道检查

            var getAppConfig = AppCfgService.Get(appid);

            if (!getAppConfig.State)
            {
                return(OperatedResult <string> .Fail(getAppConfig.Message));
            }
            var appConfig = getAppConfig.Data;

            #endregion

            return(ApiAuthenticate.CheckIdentityToken(token, appConfig));
        }
예제 #3
0
        public TransactionResult <AppConfig> Get(int id)
        {
            TransactionResult <AppConfig> result = new TransactionResult <AppConfig>();
            var serviceResult = AppConfigService.Get(id);

            if (serviceResult.ActionResult & serviceResult.HavingData)
            {
                result.Data = serviceResult.Data;
            }
            else
            {
                result.Code    = 103;
                result.Message = "暂无数据";
            }
            return(result);
        }