怎么快速集成QQ微博等第三方授权登录功能?

日常项目中经常会用到 QQ 授权登录或者微信授权登录,方便了用户,否则需要手机验证码等等的操作,授权登录只需要一键操作

OAuth 是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是 2.0 版

第三方授权登录基本都使用的这个标准,经典最常用的一种授权模式:授权码模式

  1. 用户访问第三方应用
  2. 第三方应用请求用户授权
  3. 用户同意授权,并返回一个凭证(code)
  4. 第三方应用通过第二步的凭证(code)向授权服务器请求授权
  5. 授权服务器验证凭证(code)通过后,同意授权,并返回一个资源访问的凭证(Access Token)
  6. 第三方应用通过第四步的凭证(Access Token)向资源服务器请求相关资源
  7. 资源服务器验证凭证(Access Token)通过后,将第三方应用请求的资源返回

因为第三方都遵守这个标准,所以请求方式基本类似,可以进行封装

目前我已经集成好了 QQ、微博、Github 的授权登录,能够拿到用户信息

但是可能还是有一些地方没有考虑到,未做处理,后期再继续修改吧

同时我也提供了 Demo 去测试,Demo 实例图如下:

授权登录 demo

安装

使用 composer 进行加载,使用如下命令:

composer require sy-records/oauth-login

或者手动安装,需要什么登录就引入什么登录文件,例如 test 文件夹中 demo

使用

使用的话,也就十分简单了,实例化后调用方法即可,前提是配置好具体的参数,开启curl扩展、session.auto_start扩展

QQ 授权登录

use Auth\QqConnect;

# https://connect.qq.com/manage.html#/ 创建应用
$appId = ''; # APP ID
$appKey = '';# APP Key
$callBackUrl = ''; # 授权回调地址

$qqAuth = new QqConnect($appId,$appKey,$callBackUrl);
# 授权登录页面
$qqAuth->qqLogin();
# 授权回调方法
$res = $qqAuth->qqCallBack();
var_dump($res); # 用户信息

微博授权登录

use Auth\WeiboConnect;

# http://open.weibo.com/apps/new?sort=web 创建网站应用
$appKey = ''; # 网站应用申请后的 App Key
$appSecret = ''; # 网站应用申请后的 App Secret
$callback = ''; # 授权回调地址

$weiboAuth = new WeiboConnect($appKey,$appSecret,$callback);
# 授权登录页面
$weiboAuth->weiboLogin();
# 授权回调方法
$res = $weiboAuth->weiboCallBack();
var_dump($res); # 用户信息

Github 授权登录

use Auth\GithubConnect;

# https://github.com/settings/developers 创建 OAuth App
$clientId = ''; # 创建 OAuth App 得到的 Client ID
$clientSecret = ''; # 创建 OAuth App 得到的 Client Secret
$callback = ''; # Authorization callback URL 回调地址

$githubAuth = new GithubConnect($clientId,$clientSecret,$callback);
# 授权登录页面
$githubAuth->githubLogin();
# 授权回调方法
$res = $githubAuth->githubCallBack();
var_dump($res); # 用户信息

就酱紫,直接使用就好了,拿到用户信息以后完成你的业务逻辑,项目地址:Github,如果帮助到你了,请给一个 star 😛

3 条评论

发表评论

*