liaodeity / sync-login
A third party login plugin
Installs: 44
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/liaodeity/sync-login
Requires
- php: >=5.4
This package is not auto-updated.
Last update: 2025-12-21 10:57:25 UTC
README
写在最前面,之前帮忙写个第三方登录类,找了下开源项目,好像没有好的类库正常调用使用,所以将自己修改的ThinkOauth更新到这里。
这是一个第三方登录类,可以对sdk的使用情况,进行封装多种第三方授权登录
目录
Composer安装
key密钥配置
获取登录跳转授权地址
授权后回调处理
Example完整Demo
目前已测试通过
联系作者
Composer安装
$ composer require liaodeity/sync-login dev-master
key密钥配置
配置名称必须大写,名称与src/sdk的类名相同
如src/sdk/QqSDK.class.php的配置名前缀为QQ
return [ 'QQ_KEY' => '',//QQ互联key 'QQ_SECRET' => '',//QQ互联secret 'SINA_KEY' => '',//新浪key 'SINA_SECRET' => '',//新浪secret 'CALLBACK_URL' => 'http://www.example.com/example.php'//回调地址,测试为当前地址 ];
获取登录跳转授权地址
设置好配置后,获取授权地址,自行进行调整操作即可
//获取登录类型 $type = isset($_GET['type']) ? trim ($_GET['type']) : 'qq'; try { $sns = ThinkOauth::getInstance ($type, self::config ()); //TODO 使用跳转函数处理跳转 echo $sns->getRequestCodeURL (); } catch (Exception $e) { // TODO 异常报错处理 var_dump ($e->getMessage ()); }
授权后回调处理
接收参数,调用CallBack进行处理,将返回授权后获取的信息。
//获取传递参数值 $request = $_REQUEST; $config = [];//配置 try { $syncLoginModel = new CallBack(); $userInfo = $syncLoginModel->init ($config, $request); // @TODO 处理登录业务逻辑 var_dump ($userInfo); } catch (Exception $e) { // TODO 异常报错处理 var_dump ($e->getMessage ()); }
Demo Example
设置一个完整的demo调用方法
<?php use Liaodeity\SyncLogin\CallBack; use Liaodeity\SyncLogin\ThinkOauth; //如果使用composer将不用进行手动导入类 require_once '../src/ThinkOauth.php'; require_once '../src/SyncLoginModel.php'; require_once '../src/CallBack.php'; error_reporting (E_ALL ^ E_NOTICE); /** * 本类为测试类,其中的一些接收参数未进行过滤等,请测试安全性后再部署正式 * Class Example */ class Example { /** * 授权地址类 */ public static function login () { //获取登录类型 $type = isset($_GET['type']) ? trim ($_GET['type']) : 'qq'; try { $sns = ThinkOauth::getInstance ($type, self::config ()); //TODO 使用跳转函数处理跳转 echo $sns->getRequestCodeURL (); } catch (Exception $e) { // TODO 异常报错处理 var_dump ($e->getMessage ()); } } //默认配置类 public static function config () { return [ 'QQ_KEY' => '',//QQ互联key 'QQ_SECRET' => '',//QQ互联secret 'SINA_KEY' => '',//新浪key 'SINA_SECRET' => '',//新浪secret 'CALLBACK_URL' => 'http://www.example.com/example.php'//回调地址,测试为当前地址 ]; } /** * 回调处理类 */ public static function callback () { //获取传递参数值 $request = $_REQUEST; $config = self::config (); try { $syncLoginModel = new CallBack(); $userInfo = $syncLoginModel->init ($config, $request); // @TODO 处理登录业务逻辑 var_dump ($userInfo); } catch (Exception $e) { // TODO 异常报错处理 var_dump ($e->getMessage ()); } } } //初始化调用 if (isset($_GET['code'])) { //回调地址需带code Example::callback (); } else { Example::login (); }
目前已测试通过
- QQ互联
- 新浪微博
其他的由于没有申请key密钥,所以没办法测试,敬请谅解。但应该均可正常调用,如有问题请联系
联系作者
联系邮箱:liaodeity@gmail.com
本项目基于ThinkOauth.class.php,来源于优秀的开源代码,感谢作者以及参与者,感谢ThinkPHP