# sync-login **Repository Path**: liaodeiy/sync-login ## Basic Information - **Project Name**: sync-login - **Description**: 第三方登录 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2017-09-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sync-login 写在最前面,之前帮忙写个第三方登录类,找了下开源项目,好像没有好的类库正常调用使用,所以将自己修改的ThinkOauth更新到这里。 这是一个第三方登录类,可以对sdk的使用情况,进行封装多种第三方授权登录 ## 目录 > **[Composer安装](#composer安装)** > **[key密钥配置](#key密钥配置)** > **[获取登录跳转授权地址](#获取登录跳转授权地址)** > **[授权后回调处理](#授权后回调处理)** > **[Example完整Demo](#Example完整Demo)** > **[目前已测试通过](#目前已测试通过)** > **[联系作者](#联系作者)** ## Composer安装 ``` base $ composer require liaodeity/sync-login dev-master ``` ## key密钥配置 配置名称必须大写,名称与src/sdk的类名相同 如src/sdk/QqSDK.class.php的配置名前缀为QQ ``` php return [ 'QQ_KEY' => '',//QQ互联key 'QQ_SECRET' => '',//QQ互联secret 'SINA_KEY' => '',//新浪key 'SINA_SECRET' => '',//新浪secret 'CALLBACK_URL' => 'http://www.example.com/example.php'//回调地址,测试为当前地址 ]; ``` ## 获取登录跳转授权地址 设置好配置后,获取授权地址,自行进行调整操作即可 ``` 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进行处理,将返回授权后获取的信息。 ``` php //获取传递参数值 $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 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](mailto:liaodeity@gmail.com) 本项目基于ThinkOauth.class.php,来源于优秀的开源代码,感谢作者以及参与者,感谢[ThinkPHP](http://www.thinkphp.cn)