Laravel 第三方登录之微博

申请微博开发者

首先到新浪微博申请加入开发者: http://open.weibo.com/
右上角登录,登录后点击右上角头像,选第一个编辑开发者信息并提交审核
然后导航栏 微连接->网站接入->立即接入,添加一个应用
导航栏,我的应用->应用信息->高级信息
如果只是个人练手第三方登陆,可以不进行审核等操作,你会得到一个App Key和一个App Secret。

Composer安装

composer require socialiteproviders/weibo
添加 Service Provider config/app.php 如果之前添加过 Socialite Provider,得先注释掉
`
‘providers’ => [

// Laravel\Socialite\SocialiteServiceProvider::class,

SocialiteProviders\Manager\ServiceProvider::class, // add
],
`
添加 Facades Aliase config/app.php

‘aliases’ => [

'Socialite' => Laravel\Socialite\Facades\Socialite::class, // add

],
添加事件处理器 文件 app/Providers/EventServiceProvider.php

protected $listen = [

    'SocialiteProviders\Manager\SocialiteWasCalled' => [

        'SocialiteProviders\Weibo\WeiboExtendSocialite@handle',

    ],

];

添加路由 可以自己创建控制器

// 引导用户到新浪微博的登录授权页面
Route::get(‘auth/weibo’, ‘Auth\AuthController@weibo’);
// 用户授权后新浪微博回调的页面
Route::get(‘auth/callback’, ‘Auth\AuthController@callback’);
配置 文件 config/services.php

‘weibo’ => [

'client_id' => env('WEIBO_KEY'),

'client_secret' => env('WEIBO_SECRET'),

'redirect' => env('WEIBO_REDIRECT_URI'),  

],
.env

WEIBO_KEY=39367792262

WEIBO_SECRET=086e39e85d85898c88bab100287

WEIBO_REDIRECT_URI=http://www.zb.cn/auth/weibo
控制器代码

<?php

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;

use App\Http\Controllers\Controller;

class AuthController extends Controller

{

     //获取微博登录页面

     public function weibo() {

        return \Socialite::with('weibo')->redirect();

        // return \Socialite::with('weibo')->scopes(array('email'))->redirect();

    }

    //获取登录用户信息

    public function callback() {

        $oauthUser = \Socialite::with('weibo')->user();

        var_dump($oauthUser->getId());

        var_dump($oauthUser->getNickname());

        var_dump($oauthUser->getName());

        var_dump($oauthUser->getEmail());

        var_dump($oauthUser->getAvatar());

    }

}

错误解决
如果是没有21322 显示重定向错误

在微博开发平台中的我的应用里应用信息里的高级设置设置授权设置
如果是ssl错误的话

下载cacert.pem
放置在php的文件夹下面
配置php.ini curl.cainfo =“cacert.pem 所在的路径”
如果是400 Bad Request或no message

清理游览器记录,清理cookie

猜你喜欢

转载自blog.csdn.net/weixin_43746366/article/details/88222621