Laravel OAuth2 (一) ---简单获取用户信息

前言

本来要求是使用微信进行第三方登陆,所以想着先用 github 测试成功再用微信测试,可是最近拖了好久都还没申请好微信开放平台的 AppID ,所以就只写 github 的第三方登陆吧,估计微信的实现也差不多~

关于OAuth2

关于OAuth2的理解,推荐大家先去看一下阮一峰的文章理解OAuth 2.0,看完这个之后相信就能对 OAuth2 有了一定的了解,因为在 Laravel 里面很多东西都已经封装好了,如果只是单纯的实现功能感觉并不能学到多少东西,Laravel 使用的授权模式是授权码模式。从 Laravel 的官方文档来看,其实几行代码就能实现第三方登陆的功能,但是不一定能满足我们的项目需求。这篇文章也简单记录了博主在学着使用 Laravel 的 Facaces 和 Service 模式。

准备工作

github

首先去 github 上面注册一个 Application :

Personal settings->Applications->Developer applications->Register new application 填写相关信息:
613086-20150930124222199-457222933.jpg

然后就可以得到一个 Client ID 和 Client Secret :
613086-20150930124235371-1374092609.jpg

好,到此为止,github上面的准备工作就完成了。


配置

首先在命令行中执行以下命令安装插件:

composer require laravel/socialite

然后在config/app.php文件中注册服务提供者和添加 Socialite 的 facade :

'providers' => [   //只有注册了的服务才能用
    // Other service providers...

    Laravel\Socialite\SocialiteServiceProvider::class,
],

'aliases' => [   //个人理解Facade就是将一些类的很长的路径用一个单词表示
    // Other facades...
    'Socialite' => Laravel\Socialite\Facades\Socialite::class,
],

然后我们就要到services.php中去配置 github 的 Client ID 和 Client Secret:

'github' => [    //使用env配置文件就省去了部署到服务器时修改代码的麻烦
        'client_id' => env('GITHUB_KEY'),
        'client_secret' => env('GITHUB_SECRET'),
        'redirect' => env('GITHUB_REDIRECT_URI'),
    ],
    

在.env文件中添加以下信息(就是在github上面注册的信息):

GITHUB_KEY=02e00704589a50f7f58d
GITHUB_SECRET=5793aefaa0ee643d8d78b3cf4dc7101a477fd406
GITHUB_REDIRECT_URI=http://suip.app/login/github/callback

上面回调的URL一定要和 github 上面填写的一样,不然 github 的服务器检查到不一样会拒绝服务。

开始使用

添加路由

Route::get('login/{provider}', 'Auth\AuthController@redirectToProvider');
Route::get('login/{provider}/callback', 'Autu\AuthController@handleProviderCallback');

控制器

Auth\AuthController控制器中实现 redirectToProvider 和 handleProviderCallback 函数:

public function redirectToProvider()
{
    return Socialite::driver('github')->redirect();
}

public function handleProviderCallback()
{
    $user = Socialite::driver('github')->user();
    dd($user);
}

ok,现在访问suip.app/login/github就会重定向到 github 认证的界面:
613086-20150930125214636-195517016.jpg

确认授权后就会重定向到suip.app/login/github/callback,由于在控制器中 dd 了 $user ,所以就能直接显示用户信息了。

613086-20150930125632871-1435563650.jpg

到此为止获取用户信息就结束了

转载于:https://www.cnblogs.com/pengzhendong/p/4847198.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值