Esempio n. 1
0
        public void InitialTestContext()
        {
            if (CoreAppContext.Identity == null)
            {
                var appIdentity = new AppIdentity()
                {
                    tenant_id = "1",
                    app_id    = AppInfoHelper.AppId,
                    UDID      = "TestDevice",
                };
                //AppInfoHelper.FormatAppIdInfo(appIdentity);
                CoreAppContext.SetIdentity(appIdentity);
            }

            if (CoreUserContext.Identity == null)
            {
                var userIdentity = new UserIdentity()
                {
                    id        = userId,
                    auth_type = PortalAuthorizeType.Admin
                };

                CoreUserContext.SetIdentity(userIdentity);
            }
        }
Esempio n. 2
0
        private static async Task<Resp> FormatUserIdentity(AuthorizationFilterContext context, AppIdentity appInfo, UserAuthOption opt)
        {
            var identityRes = await opt.UserProvider.GetIdentity(context.HttpContext, appInfo);
            if (!identityRes.IsSuccess())
                return identityRes;

            CoreUserContext.SetIdentity(identityRes.data);
            return identityRes;
        }
Esempio n. 3
0
        /// <summary>
        ///  获取授权token相关授权信息
        ///    todo 扩展每个AppId独立的加密秘钥
        /// </summary>
        /// <param name="newIdentity"></param>
        /// <param name="plat"></param>
        /// <returns></returns>
        private PortalTokenResp GeneratePortalToken(UserIdentity newIdentity, SocialPlatform plat)
        {
            var tenantId = CoreAppContext.Identity.tenant_id;
            var tokenStr = string.Concat(newIdentity.id, "|", tenantId, "|", (int)newIdentity.auth_type, "|", (int)plat, "|",
                                         NumHelper.RandomNum(6));

            var token = CoreUserContext.GetToken(_portalTokenSecret, tokenStr);

            return(new PortalTokenResp {
                token = token, data = newIdentity
            });
        }
Esempio n. 4
0
        private static Resp <(long userId, PortalAuthorizeType authType, SocialPlatform plat)> FormatPortalToken()
        {
            var appInfo = CoreAppContext.Identity;

            if (string.IsNullOrEmpty(appInfo.token))
            {
                return(new Resp <(long, PortalAuthorizeType, SocialPlatform plat)>().WithResp(RespTypes.UserUnLogin,
                                                                                              "用户未登录"));
            }

            var tokenDetail = CoreUserContext.GetTokenDetail(_portalTokenSecret, appInfo.token);
            var tokenSplit  = tokenDetail.Split('|');

            if (tokenSplit.Length != 5)
            {
                return(new Resp <(long, PortalAuthorizeType, SocialPlatform plat)>().WithResp(RespTypes.OperateFailed,
                                                                                              "非合法授权来源!"));
            }

            var tenantId = tokenSplit[1];
            var userId   = tokenSplit[0].ToInt64();

            if (!string.IsNullOrEmpty(appInfo.tenant_id) && tenantId != appInfo.tenant_id ||
                userId <= 0)
            {
                return(new Resp <(long, PortalAuthorizeType, SocialPlatform plat)>().WithResp(RespTypes.OperateFailed,
                                                                                              "非合法授权来源!"));
            }

            var authType = (PortalAuthorizeType)tokenSplit[2].ToInt32();
            var plat     = (SocialPlatform)tokenSplit[3].ToInt32();

            return(new Resp <(long, PortalAuthorizeType, SocialPlatform plat)>()
            {
                data = (userId, authType, plat)
            });
        }