未加星标

[ Laravel 5.3 文档 ] 官方包 ―― Laravel Socialite

字体大小 | |
[开发(php) 所属分类 开发(php) | 发布者 店小二05 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏
1、简介

除了传统的基于表格的登录认证,Laravel 还使用 Laravel Socialite 提供了一个优雅的流式接口,用于通过Facebook、Twitter、Google、LinkedIn、GitHub 和 Bitbucket实现OAuth 认证。它几乎可以处理所有你恐惧编写的社会化登录认证代码。

我们不接受新的适配器。

社区驱动的其他平台的适配器罗列在 Socialite提供者 网站上。

要使用社会化登录,需要在 composer.json 文件中添加依赖:

composer require laravel/socialite

之后运行 composer update 安装依赖。

2、配置

安装完社会化登录库后,在配置文件 config/app.php 中注册 Laravel\Socialite\SocialiteServiceProvider :

'providers' => [
// 其它服务提供者...
Laravel\Socialite\SocialiteServiceProvider::class,
],

还要在 app 配置文件中添加 Socialite门面到aliases数组:

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

你还需要为应用使用的 OAuth 服务添加认证信息,这些认证信息位于配置文件 config/services.php ,而且对应key为 facebook 、 twitter 、 linkedin 、 google 、 github 或 bitbucket ,配置哪些 key 取决于应用需要的提供者。例如:

'github' => [
'client_id' => 'your-github-app-id',
'client_secret' => 'your-github-app-secret',
'redirect' => 'http://your-callback-url',
], 3、基本使用

接下来,准备好认证用户!你需要两个路由:一个用于重定向用户到 OAuth 提供者,另一个用户获取认证后来自提供者的回调。我们使用 Socialite 门面访问 Socialite:

<php
namespace App\Http\Controllers\Auth;
use Socialite;
class AuthController extends Controller
{
/**
* 将用户重定向到Github认证页面
*
* @return Response
*/
public function redirectToProvider()
{
return Socialite::driver('github')->redirect();
}
/**
* 从Github获取用户信息.
*
* @return Response
*/
public function handleProviderCallback()
{
$user = Socialite::driver('github')->user();
// $user->token;
}
}

redirect 方法将用户发送到 OAuth 提供者, user 方法读取请求信息并从提供者中获取用户信息,在重定向用户之前,你还可以在请求上使用 scope 方法设置”作用域”,该方法将会重写已存在的所有作用域:

return Socialite::driver('github')->scopes(['scope1', 'scope2'])->redirect();

当然,你需要定义路由到控制器方法:

Route::get('auth/github', 'Auth\[email protected]');
Route::get('auth/github/callback', 'Auth\[email protected]');

很多OAuth提供者在重定向请求中支持可选参数,要在请求中包含可选参数,可以通过一个关联数组调用 with 方法:

return Socialite::driver('google')->with(['hd' => 'example.com'])->redirect();

使用 with 方法的时候,注意不要传递保留关键字作为数组的key,例如 state 或 response_type 。

获取用户信息

有了用户实例之后,就可以获取更多用户详情:

$user = Socialite::driver('github')->user();
// OAuth Two Providers
$token = $user->token;
$refreshToken = $user->refreshToken; // not always provided
$expiresIn = $user->expiresIn;
// OAuth One Providers
$token = $user->token;
$tokenSecret = $user->tokenSecret;
// All Providers
$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();

本文开发(php)相关术语:php代码审计工具 php开发工程师 移动开发者大会 移动互联网开发 web开发工程师 软件开发流程 软件开发工程师

主题: LaravelGitFacebookGitHub社会LinkedInTwitter
分页:12
转载请注明
本文标题:[ Laravel 5.3 文档 ] 官方包 ―― Laravel Socialite
本站链接:http://www.codesec.net/view/484686.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 开发(php) | 评论(0) | 阅读(29)