public string Login(string back, int IsLogin = 1, int DT_id = 0) { string code = RequestTool.RequestString("code"); string res = ""; StringBuilder sb; if (code != "") { try { sb = new StringBuilder(); sb.Append("?grant_type=authorization_code"); sb.Append("&client_id=" + appid); sb.Append("&client_secret=" + appkey); sb.Append("&code=" + code); string uri = reurnurl + "?backurl=" + ENBackuri(back); uri = System.Web.HttpUtility.UrlEncode(uri); sb.Append("&redirect_uri=" + uri); res = PostAPI("oauth/access_token", sb.ToString()); res = res + "&"; string access_token = RegexTool.GetRegValue(res, "access_token=(.*?)&"); JavaScriptSerializer jss = new JavaScriptSerializer(); //获取uid sb = new StringBuilder(); sb.Append("?access_token=" + access_token); res = GetAPI("me", sb.ToString()); Model.Facebook.userinfo model = jss.Deserialize <Model.Facebook.userinfo>(res); string uid = model.id; //return uid; string where = "bind_facebook_id='" + uid + "'"; //if (DT_id > 0) //{ // where += " and DT_id =" + DT_id + ""; //} Shop.Model.Lebi_User user = B_Lebi_User.GetModel(where); Lebi_User CurrentUser = EX_User.CurrentUser(); if (model == null) { model = new Model.Facebook.userinfo(); } if (model.picture == null) { model.picture = new Model.Facebook.userinfo.picture_(); } if (model.picture.data == null) { model.picture.data = new Model.Facebook.userinfo.picture_.data_(); model.picture.data.url = ""; } string username = model.last_name + model.first_name; if (CurrentUser.id > 0)//已经登录 { if (IsLogin == 0) { if (user != null) { if (CurrentUser.id != user.id) { return("已绑定其它帐号"); } } } CurrentUser.bind_facebook_id = uid; CurrentUser.bind_facebook_nickname = username; CurrentUser.bind_facebook_token = access_token; if (CurrentUser.Face == "") { CurrentUser.Face = model.picture.data.url;//头像 } B_Lebi_User.Update(CurrentUser); } else { if (user == null) { Lebi_UserLevel defaultlevel = B_Lebi_UserLevel.GetModel("Grade>0 order by Grade asc"); if (defaultlevel == null) { defaultlevel = new Lebi_UserLevel(); } if (defaultlevel.RegisterType == 0) //关闭注册 { return("会员注册已关闭"); } user = new Lebi_User(); user.bind_facebook_id = uid; user.bind_facebook_nickname = username; user.bind_facebook_token = access_token; user.Face = model.picture.data.url; user.NickName = username; user.UserName = "******" + uid; user.Password = EX_User.MD5(uid); user.Language = Language.CurrentLanguage().Code; user.Sex = model.gender == "female" ? "女" : "男"; user.UserLevel_id = B_Lebi_UserLevel.GetList("Grade>0", "Grade asc").FirstOrDefault().id; user.IsPlatformAccount = 1; if (CurrentSite != null) { user.Site_id = CurrentSite.id; } B_Lebi_User.Add(user); user.id = B_Lebi_User.GetMaxId(); EX_User.LoginOK(user); } else { user.bind_facebook_id = uid; user.bind_facebook_nickname = username; user.bind_facebook_token = access_token; if (user.Face == "") { user.Face = model.picture.data.url; } //user.Sex = model.gender == "female" ? "女" : "男"; B_Lebi_User.Update(user); EX_User.LoginOK(user); } } return("OK"); } catch { return("授权失败"); } } return("授权失败"); }
public string Login(string back, int IsLogin = 1) { string code = RequestTool.RequestString("code"); string res = ""; StringBuilder sb; if (code != "") { sb = new StringBuilder(); sb.Append("?grant_type=authorization_code"); sb.Append("&client_id=" + appid); sb.Append("&client_secret=" + appkey); sb.Append("&code=" + code); sb.Append("&redirect_uri=" + reurnurl); //res = APIURL("oauth/access_token", sb.ToString()); res = PostAPI("oauth/access_token", sb.ToString()); //access_token= //CAAGUzrOw7 //AMBADkwUNj //HkI9FwLPHD //fUamZCSBH1 //NbSFsKVVjF //D2QfmP0aXT //FtMTY8e8d5 //yse93demVg //YwCfEWXApj //ZAsGqt3ugg //YiHSmFQeN2 //EOwFindWuw //R9QHiTlAwr //kmuTmr1Qs4 //mwtSAZC15m //wTpLWvZCaj //OkVC1zlTZB //B5gjRZBmCm //C2j&expires=5183999 //HttpContext.Current.Response.Redirect(res); res = res + "&"; string access_token = RegexTool.GetRegValue(res, "access_token=(.*?)&"); JavaScriptSerializer jss = new JavaScriptSerializer(); //获取uid sb = new StringBuilder(); sb.Append("?access_token=" + access_token); res = GetAPI("me", sb.ToString()); Model.Facebook.userinfo model = jss.Deserialize <Model.Facebook.userinfo>(res); string uid = model.id; //return uid; Lebi_User user = B_Lebi_User.GetModel("bind_facebook_id='" + uid + "'"); if (model == null) { model = new Model.Facebook.userinfo(); } if (model.picture == null) { model.picture = new Model.Facebook.userinfo.picture_(); } if (model.picture.data == null) { model.picture.data = new Model.Facebook.userinfo.picture_.data_(); model.picture.data.url = ""; } string username = model.last_name + model.first_name; if (user == null) { Lebi_UserLevel defaultlevel = B_Lebi_UserLevel.GetModel("Grade>0 order by Grade asc"); if (defaultlevel == null) { defaultlevel = new Lebi_UserLevel(); } if (defaultlevel.RegisterType == 0) //关闭注册 { return("会员注册已关闭"); } user = new Lebi_User(); user.bind_facebook_id = uid; user.bind_facebook_nickname = username; user.bind_facebook_token = access_token; user.Face = model.picture.data.url; user.UserName = username; user.Password = EX_User.MD5(uid); user.Language = Language.CurrentLanguage().Code; user.Sex = model.gender == "female" ? "女" : "男"; user.UserLevel_id = B_Lebi_UserLevel.GetList("Grade>0", "Grade asc").FirstOrDefault().id; user.IsPlatformAccount = 1; if (CurrentSite != null) { user.Site_id = CurrentSite.id; } user.DT_id = DT_id; B_Lebi_User.Add(user); user.id = B_Lebi_User.GetMaxId(); EX_User.LoginOK(user); } else { user.bind_facebook_id = uid; user.bind_facebook_nickname = username; user.bind_facebook_token = access_token; user.Face = model.picture.data.url; user.Sex = model.gender == "female" ? "女" : "男"; user.UserName = username; user.DT_id = DT_id; B_Lebi_User.Update(user); EX_User.LoginOK(user); } return("OK"); } return("授权失败"); }