编程学习网 > PHP技术 > laravel > laravel请求微博第三方接口,实现微博登录!
2021
07-31

laravel请求微博第三方接口,实现微博登录!

本文,将详细论述如何在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教程欢迎关注编程学习网

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取