protected void Page_Load(object sender, EventArgs e) { string QQreturnstr = QQOAuth.GetTempToken(); if (QQreturnstr.IndexOf("error_code") < 0) { //获得临时令牌成功 string[] temps = QQreturnstr.Split('&', '='); Session["oauth_token_secret"] = temps[3]; Response.Redirect("https://graph.qq.com/user/get_user_info?oauth_consumer_key=" + QQOAuth.appid + "&oauth_token=" + temps[1] + "&oauth_callback=http://www.wafxw.cn/oauth/GetRightQQTonken.aspx"); } }
public JsonResult QQ(string code, string state) { QQOAuth m = new QQOAuth(); JsonResult json = new JsonResult(); json.JsonRequestBehavior = JsonRequestBehavior.AllowGet; string token = m.Token(code, state); if (!string.IsNullOrEmpty(token)) { string openid = m.OpenID(); if (!string.IsNullOrEmpty(openid)) { var user = m.GetUserInfo(); json.Data = new object[] { user }; } } return json; }
public JsonResult QQ(string code, string state) { QQOAuth m = new QQOAuth(); JsonResult json = new JsonResult(); json.JsonRequestBehavior = JsonRequestBehavior.AllowGet; string token = m.Token(code, state); if (!string.IsNullOrEmpty(token)) { string openid = m.OpenID(); if (!string.IsNullOrEmpty(openid)) { var user = m.GetUserInfo(); json.Data = new object[] { user }; } } return(json); }
public IActionResult Index( string type, [FromServices] BaiduOAuth baiduOAuth, [FromServices] WechatOAuth wechatOAuth, [FromServices] GitlabOAuth gitlabOAuth, [FromServices] GiteeOAuth giteeOAuth, [FromServices] GithubOAuth githubOAuth, [FromServices] HuaweiOAuth huaweiOAuth, [FromServices] CodingOAuth codingOAuth, [FromServices] SinaWeiboOAuth sinaWeiboOAuth, [FromServices] AlipayOAuth alipayOAuth, [FromServices] QQOAuth qqOAuth, [FromServices] OSChinaOAuth oschinaOAuth, [FromServices] DouYinOAuth douYinOAuth ) { var redirectUrl = ""; switch (type.ToLower()) { case "baidu": { redirectUrl = baiduOAuth.GetAuthorizeUrl(); break; } case "wechat": { redirectUrl = wechatOAuth.GetAuthorizeUrl(); break; } case "gitlab": { redirectUrl = gitlabOAuth.GetAuthorizeUrl(); break; } case "gitee": { redirectUrl = giteeOAuth.GetAuthorizeUrl(); break; } case "github": { redirectUrl = githubOAuth.GetAuthorizeUrl(); break; } case "huawei": { redirectUrl = huaweiOAuth.GetAuthorizeUrl(); break; } case "coding": { redirectUrl = codingOAuth.GetAuthorizeUrl(); break; } case "sinaweibo": { redirectUrl = sinaWeiboOAuth.GetAuthorizeUrl(); break; } case "alipay": { redirectUrl = alipayOAuth.GetAuthorizeUrl(); break; } case "qq": { redirectUrl = qqOAuth.GetAuthorizeUrl(); break; } case "oschina": { redirectUrl = oschinaOAuth.GetAuthorizeUrl(); break; } case "douyin": { redirectUrl = douYinOAuth.GetAuthorizeUrl(); break; } default: return(ReturnToError($"没有实现【{type}】登录方式!")); } return(Redirect(redirectUrl)); }
public async Task <IActionResult> LoginCallback( string type, [FromServices] BaiduOAuth baiduOAuth, [FromServices] WechatOAuth wechatOAuth, [FromServices] GitlabOAuth gitlabOAuth, [FromServices] GiteeOAuth giteeOAuth, [FromServices] GithubOAuth githubOAuth, [FromServices] HuaweiOAuth huaweiOAuth, [FromServices] CodingOAuth codingOAuth, [FromServices] SinaWeiboOAuth sinaWeiboOAuth, [FromServices] AlipayOAuth alipayOAuth, [FromServices] QQOAuth qqOAuth, [FromServices] OSChinaOAuth oschinaOAuth, [FromServices] DouYinOAuth douYinOAuth, [FromQuery] string code, [FromQuery] string state, [FromQuery] string error_description = "") { Console.WriteLine($"LoginCallback [{HttpContext.Request.Path}]"); try { if (!string.IsNullOrEmpty(error_description)) { throw new Exception(error_description); } HttpContext.Session.SetString("OAuthPlatform", type.ToLower()); switch (type.ToLower()) { case "baidu": { var authorizeResult = await baiduOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "wechat": { var authorizeResult = await wechatOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "gitlab": { var authorizeResult = await gitlabOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "gitee": { var authorizeResult = await giteeOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "github": { var authorizeResult = await githubOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "huawei": { var authorizeResult = await huaweiOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "coding": { var authorizeResult = await codingOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "sinaweibo": { var authorizeResult = await sinaWeiboOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "alipay": { code = HttpContext.Request.Query["auth_code"]; var authorizeResult = await alipayOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "qq": { var authorizeResult = await qqOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "oschina": { var authorizeResult = await oschinaOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } case "douyin": { var authorizeResult = await douYinOAuth.AuthorizeCallback(code, state); if (!authorizeResult.IsSccess) { throw new Exception(authorizeResult.ErrorMessage); } HttpContext.Session.Set("OAuthUser", authorizeResult.UserInfo.ToUserInfoBase()); HttpContext.Session.Set("OAuthUserDetail", authorizeResult.UserInfo, true); break; } default: throw new Exception($"没有实现【{type}】登录回调!"); } return(RedirectToAction("Result")); } catch (Exception ex) { HttpContext.Session.Remove("OAuthPlatform"); HttpContext.Session.Remove("OAuthUser"); HttpContext.Session.Remove("OAuthUserDetail"); Console.WriteLine(ex.ToString()); return(ReturnToError(ex.Message)); } }
protected void Page_Load(object sender, EventArgs e) { //QQOAuth QQOAuth = new QQOAuth(); if (Request.QueryString["oauth_token"] != null) { string oauth_token = Request.QueryString["oauth_token"].Trim(); string oauth_vericode = Request.QueryString["oauth_vericode"].Trim(); string accesstokenstr = QQOAuth.GetAccessToken(oauth_token, oauth_vericode, Session["oauth_token_secret"].ToString()); if (accesstokenstr.IndexOf("error_code") < 0) { Hashtable myvar = QQOAuth.Str2Hash(accesstokenstr); Session["oauth_token_secret"] = myvar["oauth_token_secret"].ToString(); string usernickname = "QQ用户"; #region 通过API获得用户的昵称,存储到变量usernick中 string xmlstr = QQOAuth.GetQQUserInfo(myvar["oauth_token"].ToString(), myvar["openid"].ToString(), Session["oauth_token_secret"].ToString()); DataSet dsxml = new DataSet(); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xmlstr)); dsxml.ReadXml(ms, XmlReadMode.InferSchema); foreach (DataRow dr in dsxml.Tables[0].Rows) { if (dr["ret"].ToString() == "0") { usernickname = dr["nickname"].ToString(); } } #endregion //绑定帐户 //if (JVBox.DAL.AD_MyHandCode.Exists(myvar["openid"].ToString())) //{ // #region 账号已经存在自动登陆 // DataSet ds = JVBox.DAL.AD_MyHandCode.LoginData(myvar["openid"].ToString(), myvar["openid"].ToString()); // if (ds.Tables[0].Rows.Count > 0) // { // JVBoxAppCode.Session.Add("UserName", ds.Tables[0].Rows[0]["username"].ToString(), 120); // JVBoxAppCode.Session.Add("UserId", ds.Tables[0].Rows[0]["userid"].ToString(), 120); // JVBoxAppCode.Session.Add("NickName", ds.Tables[0].Rows[0]["NickName"].ToString(), 120); // Response.Redirect("../index.aspx"); // } // #endregion //} //else //{ // #region 绑定注册 并且自动登录不存在就绑定 // JVBox.DAL.SYS_SystemUsers dal = new JVBox.DAL.SYS_SystemUsers(); // JVBox.Model.SYS_SystemUsers mod = new JVBox.Model.SYS_SystemUsers(); // mod.UserName = myvar["openid"].ToString(); // mod.PassWord = myvar["openid"].ToString(); // mod.Email = ""; // mod.Integral = 1; // mod.Address = ""; // mod.HisMoney = 10; // mod.IsLocked = false; // mod.Mobile = ""; // mod.NickName = usernickname; // mod.OrgId = 1; // mod.RealName = ""; // mod.Status = 1; // mod.LastLoginIp = IPHelp.ClientIP; // mod.LastLoginTime = DateTime.Now.ToString(); // mod.RegTime = DateTime.Now; // mod.Status = 1; // int vl = dal.Add(mod); // if (vl > 0) // { // DataSet ds = JVBox.DAL.AD_MyHandCode.LoginData(myvar["openid"].ToString(), myvar["openid"].ToString()); // if (ds.Tables[0].Rows.Count > 0) // { // JVBoxAppCode.Session.Add("UserName", ds.Tables[0].Rows[0]["username"].ToString(), 120); // JVBoxAppCode.Session.Add("UserId", ds.Tables[0].Rows[0]["userid"].ToString(), 120); // JVBoxAppCode.Session.Add("NickName", ds.Tables[0].Rows[0]["NickName"].ToString(), 120); // Response.Redirect("../index.aspx"); // } // } // else // { // JScript.Alert("帮定帐号失败", this.Page); // } // #endregion //} } } }
public ActionResult QQ(string t) { string url = QQOAuth.AuthorizeURL(t); return(RedirectPermanent(url)); }