您现在的位置是:网站首页 > 心得笔记

PHP第三方登录SDK——QQ登录

盛悦2019-03-12592人围观
简介结合OAuth2.0,本篇文章,我们根据QQ互联文档了解下官方sdk

申请AppId和AppKey

打开QQ互联:https://connect.qq.com/ -》右上角登录-》登录成功后点击头像-》填写信息成为开发者(具体参照QQ互联官方文档)-》成为开发者审核通过后创建网站应用

引入官方sdk

1、到官网下载sdk

官网地址:http://wiki.connect.qq.com/sdk%e4%b8%8b%e8%bd%bd

选择适合自己的应用下载接入,我这里下载的是PHP SDK(sdk只是官方提供的一个接入qq登录的一个示例代码)

1(1).png

2、官方sdk讲解

API文件夹:放置的是接入QQ登录的核心类以及配置文件 最终我们在项目中使用到的也只有这一个文件夹

doc文件夹:会有一些开发帮助文档

example文件夹:包含一些接入QQ互联以后,用API开发的一些功能的示例

install文件夹:是一个帮助我们配置SDK参数的一个小工具,配置完之后,install文件夹就可以删除了

3、在浏览器中访问sdk

2(1).png

点击“设置配置项”,跳转页面:

3(1).png

按照实际需要来选择,比如get_user_info获取用户基本信息。

为什么不建议全选呢?

因为你选择的所有请求权限都会在你授权登录页面右侧显示出来,如果选择太多,会让用户反感透漏那么多个人信息,不好!

如图:

4(1).png

点击配置,sdk的配置就完成了!在comm目录下生成配置文件inc.php(删除sdk包中的install文件夹)

5(1).png

inc.php配置文件内容:

6(1).png

4、SDK解读

结合官方文档http://wiki.connect.qq.com/%e5%bc%80%e5%8f%91%e6%94%bb%e7%95%a5_server-side

SDK核心类和重要方法:

登录授权相关的三个主要类:

Recorder.class.php ——专门用来读取和写入配置 并且这些配置会存放在session中

URL.class.php—— 单纯的基于curl库发送get或post请求的类

Oauth.class.php——授权类 包括拼接各种有特定参数的url,包括请求code AccessToken(前两个类都是为授权类提供服务的 )

API/qqConnectAPI.php是整个sdk的入口文件,所以在开发中只要包含这个文件 就可以对sdk集成

5、请求访问qq登录页面

$oauth = new Oauth();
$oauth->qq_login();

这样打开浏览器,便可以得到qq登录页面

6、请求accesstoken

$oauth = new Oauth();
$oauth->qq_callback();

7、获取openID

关于openID:

  1. qq用户在第三方站点的唯一标识,相当于居民身份证号

  2. 同一qq用户在不同站点使用qq登录openID始终一致。这可以用来判断当前登录用户是否是新用户

$oauth = new Oauth();
$openid = $oauth->get_openid();

将获取到的openid和accesstoken存储到cookie或者session中就好了!

8、API调用实例

$qc = new QC($_COOKIE['qq_accesstoken'],$_COOKIE['qq_openid']);
$userinfo = $qc->get_user_info();