ThinkPHP5框架集成第三方登陆SDK实现登陆功能
来源:互联网 发布:端口占用查询工具 编辑:程序博客网 时间:2024/04/29 04:39
最近使用Think PHP5框架开发一个应用,需要使用第三方登陆,因此用了这篇经验文章
- 下载第三方登陆的SDK文件,下载地址:http://dwz.cn/6Xy4PB
- 将下载下来的文件解压,在文件加里面有三个文件加,extend是tp5类库文件夹,extra是SDK配置文件,event是请求第三方接口获取授权信息
- 将得到的三个文件夹分别放到如图中所示的路径
4.新建一个Controller命名为oauth在此控制器写入请求授权方法:
//登录地址 public function login($type = null) { empty($type) && $this->error('参数错误'); //加载ThinkOauth类并实例化一个对象 $sns = ThinkOauth::getInstance($type); //跳转到授权页面 $this->redirect($sns->getRequestCodeURL()); }
5.使用oauth/login?type=sina既可以访问授权地址
6.再写入回调方法,代码方式如下
//授权回调地址 public function callback($type = null, $code = null) { //支付宝code if ('alipay' == $type) { $code = $_GET['auth_code']; } (empty($type) || empty($code)) && $this->error('参数错误'); //加载ThinkOauth类并实例化一个对象 $sns = ThinkOauth::getInstance($type); //腾讯微博需传递的额外参数 $extend = null; if ($type == 'tencent') { $extend = array('openid' => $this->_get('openid'), 'openkey' => $this->_get('openkey')); } //请妥善保管这里获取到的Token信息,方便以后API调用 //调用方法,实例化SDK对象的时候直接作为构造函数的第二个参数传入 //如: $qq = ThinkOauth::getInstance('qq', $token); $token = $sns->getAccessToken($code, $extend); //获取当前登录用户信息 if (is_array($token)) { $TypeEven = new TypeEvent(); $result = $TypeEven->$type($token); if ($result === true) { $this->success("恭喜!使用{$type}用户登录成功!", 'center/index'); //$this->redirect('center/index'); } else { $this->error($result); } } }
7.通过访问oauth/login?type=sina,如果可以访问到微博授权页面,则说明可以获取到微博用户的基本信息。
8.获取到微博用户的基本信后,可以按照自己的业务需求来实现账号登陆和账号绑定等功能。
阅读全文
0 0
- ThinkPHP5框架集成第三方登陆SDK实现登陆功能
- 实现 QQ JS SDK 第三方登陆
- 第三方登陆功能的实现
- 社会化登陆-第三方SDK
- 通过使用第三方SDK来实现应用的分享,第三方登陆,数据信息统计等功能(ShareSDK)。
- ShareSDK实现第三方登陆
- QQ实现第三方登陆
- 第三方登陆的实现
- 第三方登陆代码实现
- 微博SDK第三方授权登陆
- 友盟SDK应用(一)------第三方登陆
- 第三方SDK:ShareSDK 快捷分享 + 登陆
- 集成微信第三方登陆
- Android 集成facebook 第三方登陆
- Android 集成微信第三方登陆
- 第三方授权登陆 分享功能
- 用shareSDK实现ios应用第三方登陆和分享到第三方功能(一)
- yii框架写第三方登陆
- Windows 下 zookeeper 部署
- Grafana+Prometheus系统监控之Redis
- java手动实现HTTP响应response
- Uncaught ReferenceError: $ is not defined? 的解决方法
- 依赖倒转原则
- ThinkPHP5框架集成第三方登陆SDK实现登陆功能
- 通过SyncToy进行服务器定时服务备份流程
- 《ARM处理器体系架构与软件编程》12.15-16上海
- Linux perf: 为什么采样频率设置为99Hz而不是100Hz?
- 《Linux系统编程与调试调优》四天线下课程--2018年1月17-20日上海
- (三)Spring Cloud架构的代码结构
- 设计模式 ,学习题记(1)。
- MongoDB 入门极简教程
- [iOS] UILabel 设置内容的间距及高度的计算