【第三方登录】之QQ第三方登录
最近公司做了个网站,需要用到第三方登录的东西。有QQ第三方登录,微信第三方登录。先把QQ第三方登录的代码列一下吧。
public partial class QQBack : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Log.Debug("QQ登录", "登录开始");
string app_id = "";
var serializer = new JavaScriptSerializer();
var data = "";
Dictionary<string, string> obj = new Dictionary<string, string>();
//获取 accessToken
string code = Request.QueryString["code"];
if (!string.IsNullOrEmpty(code))
{
string url = string.Format("https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&client_id={0}&client_secret=872660e40efb3b16eecfce835b3ce081&code={1}&state={2}&redirect_uri={3}"
, app_id
, code
, "test"
, "回调地址,还是当前页面地址,以http://www.xxx.com/xxx.aspx 模式,并且对地址进行编码!"); data = Tools.GetPage(url);
Log.Debug("第一个地址:", data);
string accessToken = "";
string[] array_access_token = data.Split('&');
if (array_access_token != null && array_access_token.Length > )
{
for (int i = ; i < array_access_token.Length; i++)
{
if (!string.IsNullOrEmpty(array_access_token[i]))
{
string[] keyValue = array_access_token[i].Split('='); if (keyValue != null && keyValue.Length > )
{
if (keyValue[] == "access_token")
{
accessToken = keyValue[];
}
}
}
}
} //获取OpenID
string url2 = "https://graph.qq.com/oauth2.0/me?access_token=" + accessToken;
data = Tools.GetPage(url2);
Log.Debug("第二个地址:", data);
data = data.Replace("callback(", "").Replace(");", "");
obj = serializer.Deserialize<Dictionary<string, string>>(data);
string openid;
if (!obj.TryGetValue("openid", out openid))
return; string url3 = string.Format("https://graph.qq.com/user/get_user_info?access_token={0}&oauth_consumer_key={1}&openid={2}", accessToken, app_id, openid); data = Tools.GetPage(url3);
Log.Debug("第三个地址:", data);
var userInfo = serializer.Deserialize<Dictionary<string, string>>(data); if (openid != null && userInfo["nickname"] != null)
{
Users _MTUsers = GetModel( openid); //获取用户信息 if (_MTUsers == null)
{
Insert(_MTUsers); //如果不存在,创建
}
else
{
_MTUsers.LastLogin = DateTime.Now;
_MTUsers.LastUpdated = DateTime.Now;
Instance.MTUsers.Business.Update(_MTUsers); //存在则修改
}
Session["CurrentUser"] = _MTUsers; //将当前登录的用户放入session中
Log.Debug("QQ登录", "执行页面跳转成功");
}
}
Log.Debug("QQ登录", "登录结束");
}
}
【第三方登录】之QQ第三方登录的更多相关文章
- apiClould微信三方登录,qq三方登录
三方登录需要在config.xml文件中配置一下,res文件下需要新建一个key.xml文件中也需要配置,请点击链接查看详情 微信:https://docs.apicloud.com/Client-A ...
- 利用JS_SDK实现QQ第三方登录
前言 现如今,第三方登录已成为大部分网站必备的一项基础技能,引入时髦的第三方登录不仅能帮你吸引更多的用户,也让你的网站可以充分利用其他大型网站的用户资源.本次教程将让你的网站最快捷便利地引入QQ登录. ...
- 使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样
使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样openid生成是根据应用的appid和QQ号的一些信息加密生成,对于一个appid和QQ号来说,openid是唯一的 ...
- 第三方登录之qq登录(转载)
iOS QQ第三方登实现 我们经常会见到应用登陆的时候会有QQ,微信,微博等的第三方登陆 如图: 下面我们主要讲一下qq的第三方登陆如何实现 首先,到官网注册: http://wiki.conne ...
- QQ第三方登录
QQ第三方登录 在Android应用程序的开发过程中,很多时候需要加入用户登录/注册模块.除了自己动手设计登录界面并实现相应功能外,现在还可以借助百度.腾讯等开发者平台提供的第三方账号登录模块.最近研 ...
- PHP实现QQ第三方登录
PHP实现QQ第三方登录 学习之前,请大家先看一下oAuth协议. 首先呢,我们进入QQ互联的官方网站 http://connect.qq.com登入我们自己的QQ号,没有QQ号的小伙伴可以忽略本篇博 ...
- 实现OAUTH协议 实现 QQ 第三方登录效果
1.OAuth的简述 OAuth(Open Authorization,开放授权)是为用户资源的授权定义了一个安全.开放及简单的标准,第三方无需知道用户的账号及密码,就可获取到用户的授权信息,并且这是 ...
- 开放平台-web实现QQ第三方登录
应用场景 web应用通过QQ登录授权实现第三方登录. 操作步骤 1 注册成为QQ互联平台开发者,http://connect.qq.com/ 2 准备一个可访问的域名, ...
- QQ登录接口(第三方登录接口)
CI框架 QQ接口(第三方登录接口PHP版) 本帖内容较多,大部分都是源码,要修改的地方只有一个,其他只要复制过去,就可以完美运行.本帖主要针对CI框架,不用下载SDK,按我下面的步骤,建文件,复制代 ...
随机推荐
- 仿美团外卖,饿了吗 两个ListView联动,左边点击切换右边,右边滑动切换左边
先上效果图: 实现思路: 1.先说右边标题: 首先,右边的数据源集合中的Javabean中含有三个属性name,type,title,而每个条目中会默认含有一个标题. 如果这是第一个条目,就让标题显示 ...
- 对QQ、微信等第三方登录的几个思考
转自:http://www.jianshu.com/p/7f282dfc16fc 今天聊聊注册.登录环节中很常见的第三方登录,如QQ.微信.支付宝.新浪微博等.虽然这些产品的开放平台都提供了标准的接入 ...
- asp.net 上一条和下一条记录的显示
这里我用的是input标签跳转页面的: 前台aspx页面中: <input class="btn" id="btnSetForm" type=" ...
- C#更新SQLServer中的TimeStamp字段(时间戳) 防止同时修改一行时覆盖更新
C#更新SQLServer中的TimeStamp字段(时间戳) 分类: C#2012-10-24 15:10 1878人阅读 评论(0) 收藏 举报 public partial class Form ...
- 躲避大龙(codevs 1961)
题目描述 Description 你早上起来,慢悠悠地来到学校门口,发现已经是八点整了!(这句话里有一个比较重要的条件) 学校共有N个地点,编号为1~N,其中1号为学校门口(也就是你现在所处的位置), ...
- MAC下GitHub命令操作
由于GitHub实在太有用了~~ ,各种源代码,开源工程,经常需要下载下来使用和学习,或者自己的代码需要上传之类的,尽管有"GitHub for Mac"工具,但是作为一名程序猿! ...
- Java使用正则表达式解析LRC歌词文件
LRC歌词是一种应用广泛的歌词文件,各主流播放器都支持. lrc歌词文本中含有两类标签: 1.标识标签(ID-tags) [ar:艺人名] [ti:曲名] [al:专辑名] [by:编者(指编辑LRC ...
- struts2中一些常用的写法 记录
1.对日期进行处理 Date current = new Date(); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat ...
- 快速反编绎jar war包
反编译这些class文件或jar包或war包,用TTools https://github.com/Supermax197/TTools [root@ok action]# tree /home/ok ...
- android 屏幕旋转
转自:http://blog.csdn.net/oyzhizhong/article/details/8131799 屏是LANDSCAPE的,要让它默认显示为PORTRAIT. 1.kernel里要 ...