本文,将详细论述如何在laravel框架中,实现微博登录。
1. 准备工作
进行开发之前,首先需要在微博开放平台接入网站。
1、注册一个微博账号(估计大家都有),然后登录微博
2、前往微博开放平台,这时,右上角显示已登录。
3、如果需要更多的高级功能,可以进行开发者认证(点击右上角头像→开发者信息)
4、点击级别与权限,可以查看当前账户拥有的权限。
下图中的账号,已经拥有了授权服务。
5、点击微链接→网站接入,可以将自己的网站接入。
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、编写控制类内容,并测试:
<?php namespace 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、自动跳转至微博官方的授权登录页面
以上就是“laravel请求微博第三方接口,实现微博登录!”的详细内容,想要获取更多laravel教程欢迎关注编程学习网
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/8387/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料