本文,将详细讲述如何在Laravel框架中,实现微博登录。

1. 准备工作

进行开发之前,首先需要在微博开放平台接入网站。

1、注册一个微博账号(估计大家都有),然后登录微博(https://weibo.com)

2、前往微博开放平台(网址:https://open.weibo.com/),这时,右上角显示已登录。

3、如果需要更多的高级功能,可以进行开发者认证(点击右上角头像→开发者信息)

4、点击级别与权限,可以查看当前账户拥有的权限。

下图中的账号,已经拥有了授权服务

5、点击微链接→网站接入(网址:https://open.weibo.com/connect),可以将自己的网站接入。

6、点击立即接入,输入应用名称,点击创建

7、点击创建后,自动创建成功,自动跳转至应用信息页面。这里可以看到应用的App KeyApp 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。

参考资料:

  1. https://learnku.com/articles/24952
  2. https://my.oschina.net/u/4346195/blog/3499485

Laravel第三方登录开发之实现微博登录相关推荐

  1. Laravel第三方登录开发之实现QQ登录

    在我们的项目开发中,第三方登录可以很好的为用户提供便捷,比如微信.QQ.微博登录等等. Laravel,作为一个优雅的PHP框架,已经集成了诸多第三方登录插件. 本文,将详细论述如何在Laravel框 ...

  2. 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台

     更多微信技术交流,请加QQ群:289709451.287090836    公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三方开 ...

  3. python 第三方登录_Python 第三方登录 实现QQ 微信 微博 登录

    本人写的AgentLogin,能快速返回QQ.微信.微博第三方用户名信息,主要用于快速登录 用 pip命令安装 pip install AgentLogin 用法 : 导入这个包 from Agent ...

  4. 【JS 逆向百例】复杂的登录过程,最新微博登录逆向

    文章目录 声明 逆向目标 登录流程 1.预登陆 2.获取加密后的密码 3.获取 token 4.获取加密后的账号 5.发送验证码 6.校验验证码 7.访问 redirect url 8.访问 cros ...

  5. SpringBoot+Vue实现第三方微博登录(二)

    1. 准备工作(官方文档:地址) 本步骤的作用: 接入微博登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 1.1 保存appid和a ...

  6. Django项目实现微博登录

    Django项目实现微博授权登录 前言 前段时间我的老板让我写一个小功能,说现在的用户进入一个新的网站时,很多时候是不想去注册的,最好可以用一些他们本身就用的其他应用的账户来授权登录.本文就是从这个现 ...

  7. php 登陆微博,PHP调用微博接口实现微博登录的方法示例

    在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站.这里以微博登录为例.微博登录包括身份认证.用户关系以及内容传播.允许用户使用微博帐号登录访问第三方网站,分享内容 ...

  8. php访问微博页面,PHP调用微博接口实现微博登录的方法示例

    PHP调用微博接口实现微博登录的方法示例 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  PHP调用微博接口实现微博登录的方法示例.txt ] (友情提示:右键点 ...

  9. php微博登录授权代码,PHP调用微博接口实现微博登录的方法示例

    在平时项目开发过程中,除了注册本网站账号进行登录之外,还可以调用第三方接口进行登录网站.这里以微博登录为例.微博登录包括身份认证.用户关系以及内容传播.允许用户使用微博帐号登录访问第三方网站,分享内容 ...

最新文章

  1. mysql索引详细介绍简书_MySql索引详解
  2. Escape Time II 简单的深搜dfs()
  3. python是一种面向对象、直译式的脚本编程语言_什么是python编程语言
  4. python对于会计-会计转到数据分析值得吗?
  5. Django models文件模型变更注意事项(表结构的修改)
  6. css3半空心圆_15个超强悍的CSS3圆盘时钟动画赏析
  7. 2018年大数据趋势
  8. android 的各种文件类
  9. android 过滤emoji表情符号,android怎样过滤字符串中的emoji表情
  10. PostgreSQL 空间处理函数
  11. keil转换c为汇编语言,如何用Keil生成bin、汇编、C与汇编混合文件?
  12. 《穿越计算机的迷雾》读书笔记六
  13. 基于openflow的SDN技术
  14. Qt之QTreeWidget增删节点
  15. 【noip模拟赛1】古韵之鹊桥相会(最短路)
  16. JavaScript CSS jQuery 网页音乐播放器
  17. MT7688 openwrt 4G调试
  18. “整合”还是“混合”——多因子组合的构建
  19. android获取固定uuid,Android获取本机唯一序列号和可变UUID方法
  20. java7java8 集合中对象的某一个字段分组

热门文章

  1. 码农分为两类:看过《数学之美》的与没看过的
  2. C2000 系列DSP使用Syscfg配置CLB模块记录
  3. adobe的AGAL语言
  4. flume+kafka+storm整合02---问题
  5. 程序员兼职可以从什么平台接私活?
  6. Android 华为平行视界适配(左右分屏)
  7. 【转载】新韭菜日记22----20190304股市学习--帖子是转载的,持续学习
  8. vue3路由切换时的动画效果
  9. 虚拟服务器中毒,虚拟机中毒会影响主机吗
  10. Netgear R6220桥接组网设置