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); } }
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; }
/// <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 }); }
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) }); }