Laravel第三方登录开发之实现微博登录
本文,将详细讲述如何在Laravel框架中,实现微博登录。
1. 准备工作
进行开发之前,首先需要在微博开放平台
接入网站。
1、注册一个微博账号
(估计大家都有),然后登录微博(https://weibo.com)
2、前往微博开放平台
(网址:https://open.weibo.com/),这时,右上角显示已登录。
3、如果需要更多的高级功能
,可以进行开发者认证
(点击右上角头像→开发者信息)
4、点击级别与权限
,可以查看当前账户拥有的权限。
下图中的账号,已经拥有了授权服务
。
5、点击微链接→网站接入
(网址:https://open.weibo.com/connect),可以将自己的网站接入。
6、点击立即接入
,输入应用名称
,点击创建
7、点击创建后,自动创建成功
,自动跳转至应用信息
页面。这里可以看到应用的App Key
和App Secret
。
- 如果应用需要上线,则对信息进行完善需要对应用的信息进行完善。
- 如果只是学习开发技术,则不需要完善信息。
8、审核通过
的网站应用,是可以上线运营的。
9、填写应用信息→高级信息
中的OAuth2.0 授权设置
的回调页
,如下:
如果网站基本信息已经审核通过,则下面的安全设置等其他信息建议填写完整。
10、如果只是测试,未提交基本信息审核
,则需要添加测试账号
信息。
如果已经审核通过,则不需要添加测试账号。
至此,网站接入完成,我们开发中需要的三个参数
如下:
- App Key
- App Secret
- 授权回调页
2. 实现微博登录,并获取用户基本信息
1、创建一个Laravel项目
。
如何创建?点击此处查看
2、添加依赖插件/服务
:
打开Terminal
,使用如下 composer
命令即可添加
composer require socialiteproviders/weibo
如图:
3、添加服务提供器
Service Provider
此步骤和其他登录方式添加内容相同。
打开文件 config/app.php
,找到 provider
字典,添加的内容如下:
'providers' => [//Laravel\Socialite\SocialiteServiceProvider::classo //有博文说,如果有这行,请注释掉SocialiteProviders\Manager\ServiceProvider::class,//添加这样
],
4、添加门面
Facades Aliase
此步骤和其他登录方式添加内容相同。
同样在 config/app.php
中,往下翻,即可看到 aliases
字典,添加的内容如下:
'aliases' => ['Socialite' => Laravel\Socialite\Facades\Socialite::class,//追加这行
],
5、添加事件处理器
EventServiceProvider
此步骤和其他登录方式添加内容类似,追加。
在文件 app/Providers/EventServiceProvider.php
中,找到 $listen
数组,添加内容如下:
protected $listen = [//添加下面这个处理器'SocialiteProviders\Manager\SocialiteWasCalled' => [//如果已经实现了QQ登录,这里追加下面这一行'SocialiteProviders\Weibo\WeiboExtendSocialite@handle',],
];
6、配置参数
在上一节的末尾,说明了需要的参数。
在配置文件 config/services.php
中,添加如下内容:
'weibo' => ['client_id' => env('WEIBO_KEY'),'client_secret' => env('WEIBO_SECRET'),'redirect' => env('WEIBO_REDIRECT_URI'),
],
然后在 .env
文件中,设置参数
WEIBO_KEY=APP ID
WEIBO_SECRET=APP Key
WEIBO_REDIRECT_URI=网站回调地址
7、添加路由
在 web.php
路由文件中,添加如下路由,其中各个路由的说明见注释。
// 引导用户到新浪微博的登录授权页面
Route::get('login/weibo', 'AuthController@weiboLogin');
// 用户授权后新浪微博回调的页面
Route::get('oauth/weibo', 'AuthController@weiboCallback');
8、创建控制类
php artisan make:controller AuthController
9、编写控制类内容,并测试:
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;class AuthController extends Controller
{//获取微博登录页面,并跳转public function weiboLogin() {return Socialite::driver('weibo')->redirect();}//登录成功后,回调页面获取登录用户信息public function weiboCallback() {$userInfo = Socialite::driver('weibo')->user();dd($userInfo);}
}
3. 效果测试
1、访问登录页面
,路由中已设置网址为:http://yourdomain.com/login/weibo
2、自动跳转至微博官方的授权登录页面
3、使用前面的测试账号
扫码登录后,即可跳转至回调页面
:http://yourdomain.com/oauth/weibo
如果跳转后,有下图所示的
cURL error 60
错误,请看最后一节。
4、页面将打印登录用户的基本信息
可以看出,打印的信息是非常完
整的,用户数组user: array
有78条信息。
5、可以选择性打印信息。
如下,将回调方法进行修改,可以只获取对我们有用的信息:
//获取登录用户信息public function weiboCallback() {$userInfo = Socialite::driver('weibo')->user();
// dd($userInfo);// 获取基本信息echo '用户ID:' . $userInfo->getId() . '<br>';echo '用户头像URL:' . $userInfo->getAvatar() . '<br>';echo '用户昵称:' . $userInfo->getNickname() . '<br>';//获取更加详细的信息$user = $userInfo->user;echo '性别:' . $user['gender'] . '<br>';echo '省市:' . $user['location'] . '<br>';echo '个人简介:' . $user['description'] . '<br>';echo '粉丝数:' . $user['followers_count'] . '<br>';echo '关注数:' . $user['friends_count'] . '<br>';echo '账号创建时间:' . $user['created_at'] . '<br>';}
这时,打印的信息如下:
5、测试阶段的一个问题
参考自:https://my.oschina.net/u/4346195/blog/3499485
1、访问https://curl.haxx.se/ca/cacert.pem 下载名为 cacert.pem
的文件
2、将文件放在某个文件夹下(比如桌面),然后复制其路径,如:C:\Users\zhangsan\Desktop\cacert.pem
3、然后打开 php.ini
文件,找到最后面的 curl.cainfo =
,将其取消注释,并修改为 curl.cainfo = cacert.pem文件路径
,保存即可。如:
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
curl.cainfo = "C:\Users\zhangsan\Desktop\cacert.pem"
重启phpstudy。
参考资料:
- https://learnku.com/articles/24952
- https://my.oschina.net/u/4346195/blog/3499485
Laravel第三方登录开发之实现微博登录相关推荐
- Laravel第三方登录开发之实现QQ登录
在我们的项目开发中,第三方登录可以很好的为用户提供便捷,比如微信.QQ.微博登录等等. Laravel,作为一个优雅的PHP框架,已经集成了诸多第三方登录插件. 本文,将详细论述如何在Laravel框 ...
- 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台
更多微信技术交流,请加QQ群:289709451.287090836 公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三方开 ...
- python 第三方登录_Python 第三方登录 实现QQ 微信 微博 登录
本人写的AgentLogin,能快速返回QQ.微信.微博第三方用户名信息,主要用于快速登录 用 pip命令安装 pip install AgentLogin 用法 : 导入这个包 from Agent ...
- 【JS 逆向百例】复杂的登录过程,最新微博登录逆向
文章目录 声明 逆向目标 登录流程 1.预登陆 2.获取加密后的密码 3.获取 token 4.获取加密后的账号 5.发送验证码 6.校验验证码 7.访问 redirect url 8.访问 cros ...
- SpringBoot+Vue实现第三方微博登录(二)
1. 准备工作(官方文档:地址) 本步骤的作用: 接入微博登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 1.1 保存appid和a ...
- Django项目实现微博登录
Django项目实现微博授权登录 前言 前段时间我的老板让我写一个小功能,说现在的用户进入一个新的网站时,很多时候是不想去注册的,最好可以用一些他们本身就用的其他应用的账户来授权登录.本文就是从这个现 ...
- php 登陆微博,PHP调用微博接口实现微博登录的方法示例
在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站.这里以微博登录为例.微博登录包括身份认证.用户关系以及内容传播.允许用户使用微博帐号登录访问第三方网站,分享内容 ...
- php访问微博页面,PHP调用微博接口实现微博登录的方法示例
PHP调用微博接口实现微博登录的方法示例 来源:中文源码网 浏览: 次 日期:2019年11月5日 [下载文档: PHP调用微博接口实现微博登录的方法示例.txt ] (友情提示:右键点 ...
- php微博登录授权代码,PHP调用微博接口实现微博登录的方法示例
在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站.这里以微博登录为例.微博登录包括身份认证.用户关系以及内容传播.允许用户使用微博帐号登录访问第三方网站,分享内容 ...
最新文章
- mysql索引详细介绍简书_MySql索引详解
- Escape Time II 简单的深搜dfs()
- python是一种面向对象、直译式的脚本编程语言_什么是python编程语言
- python对于会计-会计转到数据分析值得吗?
- Django models文件模型变更注意事项(表结构的修改)
- css3半空心圆_15个超强悍的CSS3圆盘时钟动画赏析
- 2018年大数据趋势
- android 的各种文件类
- android 过滤emoji表情符号,android怎样过滤字符串中的emoji表情
- PostgreSQL 空间处理函数
- keil转换c为汇编语言,如何用Keil生成bin、汇编、C与汇编混合文件?
- 《穿越计算机的迷雾》读书笔记六
- 基于openflow的SDN技术
- Qt之QTreeWidget增删节点
- 【noip模拟赛1】古韵之鹊桥相会(最短路)
- JavaScript CSS jQuery 网页音乐播放器
- MT7688 openwrt 4G调试
- “整合”还是“混合”——多因子组合的构建
- android获取固定uuid,Android获取本机唯一序列号和可变UUID方法
- java7java8 集合中对象的某一个字段分组