protected override AuthUser GetUserInfo(AuthToken authToken) { string response = DoGetUserInfo(authToken); var userInfoObject = response.ParseObject(); this.checkResponse(userInfoObject); var userObj = userInfoObject.GetString("data").ParseObject(); var location = $"{userObj.GetString("country")}-{userObj.GetString("province")}-{userObj.GetString("city")}"; var authUser = new AuthUser(); authUser.Uuid = userObj.GetString("union_id"); authUser.Username = userObj.GetString("nickname"); authUser.Nickname = userObj.GetString("nickname"); authUser.Avatar = userObj.GetString("avatar"); authUser.Location = location; authUser.Remark = userObj.GetString("description"); authUser.Gender = GlobalAuthUtil.GetRealGender(userObj.GetString("gender")); authUser.Token = authToken; authUser.Source = source.GetName(); authUser.OriginalUser = userObj; authUser.OriginalUserStr = response; return(authUser); }
protected override AuthUser getUserInfo(AuthToken authToken) { string response = doGetUserInfo(authToken); var userObj = response.parseObject(); this.checkResponse(userObj); var authUser = new AuthUser(); authUser.uuid = userObj.getString("userid"); authUser.username = userObj.getString("username"); authUser.nickname = userObj.getString("username"); string protrait = userObj.getString("portrait"); authUser.avatar = protrait.IsNullOrWhiteSpace() ? null : string.Format("http://himg.bdimg.com/sys/portrait/item/{0}.jpg", protrait); authUser.remark = userObj.getString("userdetail"); authUser.gender = GlobalAuthUtil.getRealGender(userObj.getString("sex")); authUser.token = authToken; authUser.source = source.getName(); authUser.originalUser = userObj; authUser.originalUserStr = response; return(authUser); }
protected override AuthUser getUserInfo(AuthToken authToken) { string response = doGetUserInfo(authToken); var userInfoObject = response.parseObject(); this.checkResponse(userInfoObject); var userObj = userInfoObject.getString("data").parseObject(); var location = $"{userObj.getString("country")}-{userObj.getString("province")}-{userObj.getString("city")}"; var authUser = new AuthUser(); authUser.uuid = userObj.getString("union_id"); authUser.username = userObj.getString("nickname"); authUser.nickname = userObj.getString("nickname"); authUser.avatar = userObj.getString("avatar"); authUser.location = location; authUser.remark = userObj.getString("description"); authUser.gender = GlobalAuthUtil.getRealGender(userObj.getString("gender")); authUser.token = authToken; authUser.source = source.getName(); authUser.originalUser = userObj; authUser.originalUserStr = response; return(authUser); }
protected override AuthUser GetUserInfo(AuthToken authToken) { string response = DoGetUserInfo(authToken); var resData = response.ParseObject(); this.checkResponse(resData); var userObj = resData.GetString("data").ParseObject(); var authUser = new AuthUser(); authUser.Uuid = userObj.GetString("id"); authUser.Username = userObj.GetString("name"); authUser.Nickname = userObj.GetString("name"); authUser.Avatar = $"{"https://coding.net/"}{userObj.GetString("avatar")}"; authUser.Blog = $"{"https://coding.net/"}{userObj.GetString("path")}"; authUser.Company = userObj.GetString("company"); authUser.Location = userObj.GetString("location"); authUser.Email = userObj.GetString("email"); authUser.Remark = userObj.GetString("slogan"); authUser.Gender = GlobalAuthUtil.GetRealGender(userObj.GetString("sex")); authUser.Token = authToken; authUser.Source = source.GetName(); authUser.OriginalUser = resData; authUser.OriginalUserStr = response; return(authUser); }
protected override AuthUser getUserInfo(AuthToken authToken) { string response = doGetUserInfo(authToken); var resData = response.parseObject(); this.checkResponse(resData); var userObj = resData.getString("data").parseObject(); var authUser = new AuthUser(); authUser.uuid = userObj.getString("id"); authUser.username = userObj.getString("name"); authUser.nickname = userObj.getString("name"); authUser.avatar = $"{"https://coding.net/"}{userObj.getString("avatar")}"; authUser.blog = $"{"https://coding.net/"}{userObj.getString("path")}"; authUser.company = userObj.getString("company"); authUser.location = userObj.getString("location"); authUser.email = userObj.getString("email"); authUser.remark = userObj.getString("slogan"); authUser.gender = GlobalAuthUtil.getRealGender(userObj.getString("sex")); authUser.token = authToken; authUser.source = source.getName(); authUser.originalUser = resData; authUser.originalUserStr = response; return(authUser); }
protected override AuthUser GetUserInfo(AuthToken authToken) { string userResponse = DoGetUserInfo(authToken); var userProfile = userResponse.ParseObject(); this.CheckResponse(userProfile); var userObj = userProfile.GetString("data").ParseObject(); bool isAnonymousUser = userObj.GetInt32("uid_type") == 14; string anonymousUserName = "******"; var authUser = new AuthUser(); authUser.Uuid = userObj.GetString("uid"); authUser.Username = isAnonymousUser ? anonymousUserName : userObj.GetString("screen_name"); authUser.Nickname = isAnonymousUser ? anonymousUserName : userObj.GetString("screen_name"); authUser.Avatar = userObj.GetString("avatar_url"); authUser.Remark = userObj.GetString("description"); authUser.Gender = GlobalAuthUtil.GetRealGender(userObj.GetString("gender")); authUser.Token = authToken; authUser.Source = source.GetName(); authUser.OriginalUser = userProfile; authUser.OriginalUserStr = userResponse; return(authUser); }
protected override AuthUser getUserInfo(AuthToken authToken) { string response = doGetUserInfo(authToken); var jsonObj = response.parseObject(); this.checkResponse(jsonObj); // 返回 OpenId 或其他,均代表非当前企业用户,不支持 if (!jsonObj.ContainsKey("UserId")) { throw new Exception(AuthResponseStatus.UNIDENTIFIED_PLATFORM.GetDesc()); } string userId = jsonObj.getString("UserId"); string userDetailResponse = getUserDetail(authToken.accessToken, userId); var userDetailObj = userDetailResponse.parseObject(); this.checkResponse(userDetailObj); var authUser = new AuthUser(); authUser.username = userDetailObj.getString("name"); authUser.nickname = userDetailObj.getString("alias"); authUser.avatar = userDetailObj.getString("avatar"); authUser.location = userDetailObj.getString("address"); authUser.email = userDetailObj.getString("email"); authUser.uuid = userDetailObj.getString("userId"); authUser.token = authToken; authUser.source = source.getName(); authUser.gender = GlobalAuthUtil.getWechatRealGender(userDetailObj.getString("gender")); authUser.originalUser = userDetailObj; authUser.originalUserStr = response; return(authUser); }
/** * 获取用户的实际性别。华为系统中,用户的性别:1表示女,0表示男 * * @param object obj * @return AuthUserGender */ private AuthUserGender getRealGender(Dictionary <string, object> userObj) { int genderCodeInt = userObj.getInt32("gender"); string genderCode = genderCodeInt == 1 ? "0" : (genderCodeInt == 0) ? "1" : genderCodeInt + ""; return(GlobalAuthUtil.getRealGender(genderCode)); }
protected override AuthUser GetUserInfo(AuthToken authToken) { string response = DoGetUserInfo(authToken); var userObj = response.ParseObject(); this.checkResponse(userObj); var authUser = new AuthUser(); authUser.Uuid = userObj.GetString("id"); authUser.Username = userObj.GetString("name"); authUser.Nickname = userObj.GetString("name"); authUser.Avatar = userObj.GetString("avatar"); authUser.Blog = userObj.GetString("url"); authUser.Location = userObj.GetString("location"); authUser.Email = userObj.GetString("email"); authUser.Gender = GlobalAuthUtil.GetRealGender(userObj.GetString("gender")); authUser.Token = authToken; authUser.Source = source.GetName(); authUser.OriginalUser = userObj; authUser.OriginalUserStr = response; return(authUser); }
protected override AuthUser GetUserInfo(AuthToken authToken) { string openId = authToken.OpenId; string response = DoGetUserInfo(authToken); var jsonObj = response.ParseObject(); this.checkResponse(jsonObj); //string location = String.format("%s-%s-%s", object.getString("country"), object.getString("province"), object.getString("city")); string location = $"{jsonObj.GetString("country")}-{jsonObj.GetString("province")}-{jsonObj.GetString("city")}"; if (jsonObj.ContainsKey("unionid")) { authToken.UnionId = jsonObj.GetString("unionid"); } var authUser = new AuthUser(); authUser.Username = jsonObj.GetString("nickname"); authUser.Nickname = jsonObj.GetString("nickname"); authUser.Avatar = jsonObj.GetString("headimgurl"); authUser.Location = location; authUser.Uuid = openId; authUser.Gender = GlobalAuthUtil.GetWechatRealGender(jsonObj.GetString("sex")); authUser.Token = authToken; authUser.Source = source.GetName(); authUser.OriginalUser = jsonObj; authUser.OriginalUserStr = response; return(authUser); }
protected override AuthUser GetUserInfo(AuthToken authToken) { string response = DoGetUserInfo(authToken); var jsonObj = response.ParseObject(); this.checkResponse(jsonObj); // 返回 OpenId 或其他,均代表非当前企业用户,不支持 if (!jsonObj.ContainsKey("UserId")) { throw new Exception(AuthResponseStatus.UNIDENTIFIED_PLATFORM.GetDesc()); } string userId = jsonObj.GetString("UserId"); string userDetailResponse = getUserDetail(authToken.AccessToken, userId); var userDetailObj = userDetailResponse.ParseObject(); this.checkResponse(userDetailObj); var authUser = new AuthUser(); authUser.Username = userDetailObj.GetString("name"); authUser.Nickname = userDetailObj.GetString("alias"); authUser.Avatar = userDetailObj.GetString("avatar"); authUser.Location = userDetailObj.GetString("address"); authUser.Email = userDetailObj.GetString("email"); authUser.Uuid = userDetailObj.GetString("userid"); authUser.Enable = userDetailObj.GetString("enable") == "1"; // Todo:处理不同方式定义bool的更好处理方式"true/false","1/0" authUser.Token = authToken; authUser.Source = source.GetName(); authUser.Gender = GlobalAuthUtil.GetWechatRealGender(userDetailObj.GetString("gender")); authUser.OriginalUser = userDetailObj; authUser.OriginalUserStr = response; return(authUser); }
protected override AuthUser getUserInfo(AuthToken authToken) { string response = doGetUserInfo(authToken); var userObj = response.parseObject(); this.checkResponse(userObj); var authUser = new AuthUser(); authUser.uuid = userObj.getString("id"); authUser.username = userObj.getString("name"); authUser.nickname = userObj.getString("name"); authUser.avatar = userObj.getString("avatar"); authUser.blog = userObj.getString("url"); authUser.location = userObj.getString("location"); authUser.email = userObj.getString("email"); authUser.gender = GlobalAuthUtil.getRealGender(userObj.getString("gender")); authUser.token = authToken; authUser.source = source.getName(); authUser.originalUser = userObj; authUser.originalUserStr = response; return(authUser); }
private AuthUserGender getGender(Dictionary <string, object> userObj) { var basicInformation = userObj.getJSONObject("basicInformation"); if (basicInformation.Count == 0) { return(AuthUserGender.UNKNOWN); } return(GlobalAuthUtil.getRealGender(basicInformation.getString("sex"))); }
/** * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ public override string authorize(string state) { return(UrlBuilder.fromBaseUrl(source.authorize()) .queryParam("appid", config.clientId) .queryParam("redirect_uri", GlobalAuthUtil.urlEncode(config.redirectUri)) .queryParam("response_type", "code") .queryParam("scope", config.scope.IsNullOrWhiteSpace() ? "snsapi_login" : config.scope) .queryParam("state", getRealState(state)) .build()); }
/** * 返回带{@code state}参数的授权url,授权回调时会带上这个{@code state} * * @param state state 验证授权流程的参数,可以防止csrf * @return 返回授权地址 * @since 1.9.3 */ public override string Authorize(string state) { return(UrlBuilder.FromBaseUrl(source.Authorize()) .QueryParam("appid", config.ClientId) .QueryParam("redirect_uri", GlobalAuthUtil.UrlEncode(config.RedirectUri)) .QueryParam("response_type", "code") .QueryParam("scope", config.Scope.IsNullOrWhiteSpace() ? "snsapi_userinfo" : config.Scope) .QueryParam("state", GetRealState(state) + "#wechat_redirect") .Build()); }
private AuthToutiaoErrorCode GetToutiaoErrorCode(int errorCode) { var enumObjects = typeof(AuthToutiaoErrorCode).ToList(); var codeEnum = enumObjects.Where(a => a.ID == errorCode).ToList(); if (codeEnum.Count > 0) { return(GlobalAuthUtil.EnumFromString <AuthToutiaoErrorCode>(codeEnum[0].Name)); } else { return(AuthToutiaoErrorCode.EC999); } }
protected override AuthUser getUserInfo(AuthToken authToken) { string accessToken = authToken.accessToken; AlipayUserInfoShareRequest request = new AlipayUserInfoShareRequest(); AlipayUserInfoShareResponse response = null; try { response = this.aopClient.Execute(request, accessToken); } catch (Exception e) { throw new Exception(e.Message, e); } if (response.IsError) { throw new Exception(response.SubMsg); } string province = response.Province, city = response.City; string location = string.Format("{0} {1}", !province.IsNullOrWhiteSpace() ? "" : province, !city.IsNullOrWhiteSpace() ? "" : city); var authUser = new AuthUser(); authUser.username = response.UserName.IsNullOrWhiteSpace() ? response.NickName : response.UserName; authUser.nickname = response.NickName; authUser.avatar = response.Avatar; authUser.location = location; authUser.uuid = response.UserId; authUser.gender = GlobalAuthUtil.getRealGender(response.Gender); authUser.token = authToken; authUser.source = source.getName(); authUser.originalUser = response; authUser.originalUserStr = JsonConvert.SerializeObject(response); return(authUser); }
/** * 获取token,适用于获取access_token和刷新token * * @param accessTokenUrl 实际请求token的地址 * @return token对象 */ private AuthToken getToken(string accessTokenUrl) { var reqParams = new Dictionary <string, object> { { "Host", "https://login.microsoftonline.com" }, { "Content-Type", "application/x-www-form-urlencoded" }, }; var reqParamDic = GlobalAuthUtil.parseUrlObject(accessTokenUrl); var response = HttpUtils.RequestPost(accessTokenUrl, JsonConvert.SerializeObject(reqParamDic), reqParams); var accessTokenObject = response.parseObject(); this.checkResponse(accessTokenObject); var authToken = new AuthToken(); authToken.accessToken = accessTokenObject.getString("access_token"); authToken.tokenType = accessTokenObject.getString("token_type"); authToken.expireIn = accessTokenObject.getInt32("expires_in"); authToken.refreshToken = accessTokenObject.getString("refresh_token"); authToken.scope = accessTokenObject.getString("scope"); return(authToken); }
protected override AuthUser getUserInfo(AuthToken authToken) { string openId = this.getOpenId(authToken); string response = doGetUserInfo(authToken); var userObj = response.parseObject(); if (userObj.getInt32("ret") != 0) { throw new Exception(userObj.getString("msg")); } string avatar = userObj.getString("figureurl_qq_2"); if (avatar.IsNullOrWhiteSpace()) { avatar = userObj.getString("figureurl_qq_1"); } string location = $"{userObj.getString("province")}-{userObj.getString("city")}"; var authUser = new AuthUser(); authUser.uuid = openId; authUser.username = userObj.getString("nickname"); authUser.nickname = userObj.getString("nickname"); authUser.avatar = avatar; authUser.location = location; authUser.email = userObj.getString("email"); authUser.remark = userObj.getString("bio"); authUser.gender = GlobalAuthUtil.getRealGender(userObj.getString("gender")); authUser.token = authToken; authUser.source = source.getName(); authUser.originalUser = userObj; authUser.originalUserStr = response; return(authUser); }
protected override AuthUser getUserInfo(AuthToken authToken) { var response = doGetUserInfo(authToken); var userObj = response.parseObject(); this.checkResponse(userObj); var authUser = new AuthUser { uuid = userObj.getString("id"), username = userObj.getString("name"), nickname = userObj.getString("name"), avatar = getUserPicture(userObj), location = userObj.getString("locale"), email = userObj.getString("email"), gender = GlobalAuthUtil.getRealGender(userObj.getString("gender")), token = authToken, source = source.getName(), originalUser = userObj, originalUserStr = response }; return(authUser); }
protected override AuthUser GetUserInfo(AuthToken authToken) { var accessToken = authToken.AccessToken; var uid = authToken.Uid; var oauthParam = $"uid={uid}&access_token={accessToken}"; var reqParams = new Dictionary <string, object>(); reqParams.Add("Authorization", "OAuth2 " + oauthParam); reqParams.Add("API-RemoteIP", "application/x-www-form-urlencoded"); string response = HttpUtils.RequestGet(UserInfoUrl(authToken), reqParams); var userObj = response.ParseObject(); if (userObj.ContainsKey("error")) { throw new Exception(userObj.GetString("error")); } var authUser = new AuthUser(); authUser.Uuid = userObj.GetString("id"); authUser.Username = userObj.GetString("name"); authUser.Nickname = userObj.GetString("screen_name"); authUser.Avatar = userObj.GetString("profile_image_url"); authUser.Blog = userObj.GetString("url").IsNullOrWhiteSpace() ? $"{"https://weibo.com/"}{userObj.GetString("profile_url")}" : userObj.GetString("url"); authUser.Location = userObj.GetString("location"); authUser.Remark = userObj.GetString("description"); authUser.Gender = GlobalAuthUtil.GetRealGender(userObj.GetString("gender")); authUser.Token = authToken; authUser.Source = source.GetName(); authUser.OriginalUser = userObj; authUser.OriginalUserStr = response; return(authUser); }
protected override AuthUser GetUserInfo(AuthToken authToken) { var response = DoGetUserInfo(authToken); var userObj = response.ParseObject(); this.checkResponse(userObj); var authUser = new AuthUser { Uuid = userObj.GetString("id"), Username = userObj.GetString("name"), Nickname = userObj.GetString("name"), Avatar = getUserPicture(userObj), Location = userObj.GetString("locale"), Email = userObj.GetString("email"), Gender = GlobalAuthUtil.GetRealGender(userObj.GetString("gender")), Token = authToken, Source = source.GetName(), OriginalUser = userObj, OriginalUserStr = response }; return(authUser); }
/// <summary> /// 获取默认的 Request /// </summary> /// <param name="authSource"></param> /// <returns>{@link AuthRequest}</returns> private IAuthRequest getDefaultRequest(string authSource) { ClientConfig clientConfig = GetClientConfig(authSource); IAuthStateCache authStateCache = new DefaultAuthStateCache(); DefaultAuthSourceEnum authSourceEnum = GlobalAuthUtil.EnumFromString <DefaultAuthSourceEnum>(authSource); switch (authSourceEnum) { case DefaultAuthSourceEnum.WECHAT_MP: return(new WeChatMpAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.WECHAT_OPEN: return(new WeChatOpenAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.WECHAT_ENTERPRISE: return(new WeChatEnterpriseAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.WECHAT_ENTERPRISE_SCAN: return(new WeChatEnterpriseScanAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.ALIPAY_MP: return(new AlipayMpAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.GITEE: return(new GiteeAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.GITHUB: return(new GithubAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.BAIDU: return(new BaiduAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.XIAOMI: return(new XiaoMiAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.DINGTALK_SCAN: return(new DingTalkScanAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.OSCHINA: return(new OschinaAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.CODING: return(new CodingAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.LINKEDIN: return(new LinkedInAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.WEIBO: return(new WeiboAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.QQ: return(new QQAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.DOUYIN: return(new DouyinAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.GOOGLE: return(new GoogleAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.FACEBOOK: return(new FackbookAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.MICROSOFT: return(new MicrosoftAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.TOUTIAO: return(new ToutiaoAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.TEAMBITION: return(new TeambitionAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.RENREN: return(new RenrenAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.PINTEREST: return(new PinterestAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.STACK_OVERFLOW: return(new StackOverflowAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.HUAWEI: return(new HuaweiAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.KUJIALE: return(new KujialeAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.GITLAB: return(new GitlabAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.MEITUAN: return(new MeituanAuthRequest(clientConfig, authStateCache)); case DefaultAuthSourceEnum.ELEME: return(new ElemeAuthRequest(clientConfig, authStateCache)); default: return(null); } }