laravel 实现微博第三方登陆

1: 首先到新浪微博申请加入开发者: http://open.weibo.com/

       右上角登录,登录后点击右上角头像,选第一个编辑开发者信息并提交审核

       然后导航栏 微连接->网站接入->立即接入,添加一个应用

       导航栏,我的应用->应用信息->高级信息

      如果只是个人练手第三方登陆,可以不进行审核等操作,你会得到一个App Key和一个App Secret。

   

在高级信息中编辑授权回调页,在设置回调地址的时候需要设置完全,最好是设置到方法级别。

2: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());
    }
}

 访问路由,效果如下

 常见错误:443说明没有用户没有访问权限:我的应用->应用信息->测试信息 关联测试号即可。

curl:(60)SSL证书:无法获取本地颁发者证书(卷曲:(60)SSL证书:无法获得本地颁发者证书)
https://curl.haxx.se/ca/cacert.pem下载最新的cacert.pem 放在自己使用的php版本中:

修改php.ini文件  curl.cainfo = /路径/到/下载/ cacert.pem  重启环境即可。

 

报错400或者no message 清除cookie即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值