codecamp

第三方登陆认证

除了传统的以表单进行的认证,Laravel 还提供了简单、易用的方式,使用 Laravel Socialite 进行 OAuth 认证。Socialite 目前支持的认证有 Facebook、 Twitter、Google、以及GitHub 和 Bitbucket 。

如果要开始使用第三方认证,请将下面的代码加入到你的 composer.json 文件內:

"laravel/socialite": "~2.0"

接下來,在你的 config/app.php 配置文件中注册 Laravel\Socialite\SocialiteServiceProvider。也可以注册 facade:

'Socialize' => 'Laravel\Socialite\Facades\Socialite',

你需要在应用程序中加入 OAuth 服务所需的凭证。这些凭证都放在 config/services.php 配置文件里,并根据应用的需求使用 facebook、twitter、google 或 github 作为对应的键值。例如:

'github' => [
    'client_id' => 'your-github-app-id',
    'client_secret' => 'your-github-app-secret',
    'redirect' => 'http://your-callback-url',
],

接下來就准备认证用户了!你会需要两个路由:一个用于将用户重定向至认证提供网站,另一个用于认证之后,从认证服务接收回调。下面是一个使用 Socialize facade 的示例:

public function redirectToProvider()
{
    return Socialize::with('github')->redirect();
}

public function handleProviderCallback()
{
    $user = Socialize::with('github')->user();

    // $user->token;
}

redirect 方法将用户重定向到认证 OAuth 的网站,而 user 方法会获取返回的请求,以及从认证网站取得的用户信息。在重定向至用户之前,你也可以设定请求的「 scopes 」:

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

一旦你取得用户实例,你能获取到更多的用户详细信息:

获取用户资料

$user = Socialize::with('github')->user();

// OAuth Two Providers
$token = $user->token;

// OAuth One Providers
$token = $user->token;
$tokenSecret = $user->tokenSecret;

// All Providers
$user->getId();
$user->getNickname();
$user->getName();
$user->getEmail();
$user->getAvatar();
忘记密码与重设
配置文件
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

环境配置

系统服务

哈希

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }