【第三方登录】之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,按我下面的步骤,建文件,复制代 ...
随机推荐
- WCF重写ServiceHost,实现独立配置文件
有时我们需要将WCF的配置文件放在单独的配置文件中,而默认情况下WCF又是在web.config或app.config中去寻找服务配置.如果我们把配置文件放在另一个config文件中,如何让WCF知道 ...
- 【python】入门学习(四)
函数: 定义函数 #area.py from math import pi def area(radius): """Return the area of a circl ...
- UIView CALayer 的区别
UIView与CALayer的区别,很详细 研究Core Animation已经有段时间了,关于Core Animation,网上没什么好的介绍.苹果网站上有篇专门的总结性介绍,但是似乎原理性的东西不 ...
- ASP.NET Ajax 简单实例
本实例讲解Ajax 调用WCF服务. 1.建立一个网站,并在其中添加一个WCF服务(这里需要选择Ajax-Enabled WCF Service). 2.IDE会自动生成一个SVC文件. 3.服务代码 ...
- asp.net 防止按钮重复提交
1.将按钮属性设置如下: <asp:Button ID="btConfirm" runat="server" Text="Confirm&quo ...
- 类模板的static成员
下列代码可以通过编译吗?如何修改使其通过编译? template <class T> struct sum { static void foo(T op1 , T op2){ c ...
- NYOJ题目57 6174问题
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAscAAAJLCAIAAACE5qzaAAAgAElEQVR4nO3dMXKrutvH8XcT6bOQ1C ...
- codevs 2530大质数
链接:http://codevs.cn/problem/1530/ 解题思路: 这个题最关键的剪枝还是 因子小于平方根,但不是像原来那样用. 逆转思维,与其说判断哪些是质数,不如说判断哪些不是质数,更 ...
- 如何在elasticsearch中查看Logstash打到elasticsearch的数据
# cat syslog02.conf #filename:syslog02.conf #注意这个是要用#号注释掉 input{ file{ path => ["/var/log/*. ...
- 在ubuntu上搭建开发环境7---ubuntu安装JDK
首先,当然是要下载了. 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 按 ...