QQ第三方登陆示例
先上图

若想实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现。注册方法可参考链接http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E5%8F%91%E8%80%85
成为QQ互联开发者后,还需创建应用,即获取本项目对应与QQ互联的应用ID,创建应用的方法参考链接http://wiki.connect.qq.com/__trashed-2
QQ登录开发文档连接http://wiki.connect.qq.com/%E5%87%86%E5%A4%87%E5%B7%A5%E4%BD%9C_oauth2-0
个人理解:
用户点击qq登陆,前端向服务器请求qq登陆的链接(请求参数next登陆成功后要跳转的页面),服务器生成qq登陆链接(设置state=next),前端请求成功跳转到该链接(qq登陆页)。用户进行qq登陆,登陆成功qq将用户重定向到服务器的callback网址(用户绑定页面)并携带code和state,服务器收到请求凭code向qq服务器请求access_token,得到access_token在通过access_token请求openid。这样就得到了能唯一标识用户的openid。还得有OAuthUser数据表用来存储用户对应的openid。那么通过openid查询OAuthUser表就能知道哪个用户。如果是已绑定用户,服务器返回生成的token和用户信息,前端通过get_query_string('state')获得要跳转的页面。用户登陆成功。如果在OAuthUser表找不到openid,(说明用户第一次使用qq登陆,那需要知道他是已注册用户还是未注册用户。)服务端使用itsdangerous模块处理openid生成token发送给前端(防止openid被修改)。前端将用户输入的手机号密码短信验证码和token一起发给后端,后端通过手机号判断用户是否存在如果存在绑定用户(在OAuthUser添加记录),否则注册该用户并绑定。返回用户信息和签发的token。
QQ第三方登陆示例的更多相关文章
- C#网站实现QQ第三方登陆# C#快速开发教程
C#网站实现QQ第三方登陆 说起在网站上面可以直接使用QQ登录功能大家并不陌生.但翻其官方提供的SDK包中却没有C#方向的. 但是我们有个牛人叫张善友,做了一个民间SDK.下面我们就是用他所写的SDK ...
- QQ第三方登陆
第一步 引入第三方登陆类,实例化,调用类中方法getInstance()跳转到授权页面 第二步 登陆成功的回调方法,qq_return则是登陆成功会获取到的数据的处理方法 qq_return方法: 本 ...
- 分享QQ第三方登陆SDK
主要是考虑到QQ的PHP SDK写的真是太烂了,纯属是普及API知识,而不是到手就可以部署的类库..反正自己都写了一个了,就拿出来分享下.. 什么也不多说,直接上代码. Qq_sdk.php < ...
- php qq第三方登陆
0.下载QQ登录(QQ互)php版:下载地址:点击打开链接(本文编写时最新版本:V2.1 ) 1.在QQ互联网站注册一个appid,配置网站地址和回调地址. 例:http://yzdd.app1101 ...
- QQ互联第三方登陆 redirect uri is illegal(100010)
想必第一次大家接触QQ第三方登陆都会遇到各种各样的问题,备受折磨,因此,今天我把自己做QQ登陆的过程描述一下,希望给大家提供参考,少走弯路. 在开发之前,我们先了解下QQ登陆的流程 第一:查看熟悉 网 ...
- 第三方登陆-qq互联
看到很多网站都有第三方登陆,使用业余时间自己也要实现一个第三方登陆的功能: 1.登陆qq互联的网站:https://connect.qq.com/index.html 2.点击头像进行资料申请 --- ...
- 腾讯QQ快捷登陆
腾讯QQ快捷 相关各语言对接qq快捷登录教程 [C#]QQ开放平台(QQ站外登录)_流程和源码示例 j2ee中实现QQ第三方登陆 web实现QQ第三方登录 asp.net网站接入QQ登录 php实现q ...
- QQ第三方登录(预备节)
第一次很多时候,用户因为复杂的注册程序,而不愿意再体验我们的网站服务,我们可以通过QQ第三方授权,这样既保证了用户数,而且也极大的提高了用户体验.废话就不多说了,直接进入正题... 要实现QQ第三方登 ...
- QQ第三方登录(一)
要实现QQ第三方登陆 这就需要QQ方面的支持. 首先 我们需要在QQ开发者网站上注册,https://connect.qq.com/index.html 登陆之后点击应用管理,正常情况下我们是未提交 ...
随机推荐
- labelme2COCO
# -*- coding:utf-8 -*-# !/usr/bin/env python import argparseimport jsonimport matplotlib.pyplot as p ...
- Ubuntu14.04下opencv卸载与重装
参考链接:http://askubuntu.com/questions/334158/installing-opencv http://stackoverflow.com/questions/1313 ...
- [c++] final override keyword
the two keyword are aimed at virtual function final final function must be a virtual funtion , final ...
- python时间处理详解-乾颐堂
1.获取当前时间的两种方法: import datetime,time now = time.strftime("%Y-%m-%d %H:%M:%S") print now now ...
- Flask框架 之 信号
Flask框架中的信号基于blinker,其主要就是让开发者可是在flask请求过程中定制一些用户行为. 安装 pip3 install blinker 内置信号 request_started = ...
- https://itunes.apple.com/cn/app/apache-overkill/id410553807?mt=8uo%3D6
https://itunes.apple.com/cn/app/apache-overkill/id410553807?mt=8uo%3D6 http://eplusgames.net/games/s ...
- Java编程规范参考
谷歌Java编程规范-原版 谷歌Java编程规范-中文翻译版 阿里巴巴Java编程规范 阿里巴巴Java编程规范-IDEA 插件 阿里巴巴Java编程规范-Eclipse 插件
- [欣赏代码片段] (JavaScript) 你使用过getComputedStyle没有
(function() { // IE8 ployfill for GetComputed Style (for Responsive Script below) if (!window.getCom ...
- kcp源码走读
kcp协议与tcp协议类似,是一种ARQ协议.他的优点在于比tcp的延迟更小30%-40%,但相应的会牺牲一部分的带宽,大该比tcp多浪费10%~20%.tcp的设计目标是增大网络利用率,而kcp的设 ...
- ObjC正则表达式验证
试过ObjC的regkit这个框架. 也用过内置的正则表达式验证. 最后发现有个非常简单的方法就可以做到验证正则表达式.那就是NSPredicte这个类提供的方法. 这里有验证邮箱地址的正则为例: N ...