W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
除了傳統(tǒng)的以表單進(jìn)行的認(rèn)證,Laravel 還提供了簡(jiǎn)單、易用的方式,使用 Laravel Socialite 進(jìn)行 OAuth 認(rèn)證。Socialite 目前支持的認(rèn)證有 Facebook、 Twitter、Google、以及GitHub 和 Bitbucket 。
如果要開始使用第三方認(rèn)證,請(qǐng)將下面的代碼加入到你的 composer.json 文件內(nèi):
"laravel/socialite": "~2.0"
接下來(lái),在你的 config/app.php 配置文件中注冊(cè) Laravel\Socialite\SocialiteServiceProvider。也可以注冊(cè) facade:
'Socialize' => 'Laravel\Socialite\Facades\Socialite',
你需要在應(yīng)用程序中加入 OAuth 服務(wù)所需的憑證。這些憑證都放在 config/services.php 配置文件里,并根據(jù)應(yīng)用的需求使用 facebook、twitter、google 或 github 作為對(duì)應(yīng)的鍵值。例如:
'github' => [
'client_id' => 'your-github-app-id',
'client_secret' => 'your-github-app-secret',
'redirect' => 'http://your-callback-url',
],
接下來(lái)就準(zhǔn)備認(rèn)證用戶了!你會(huì)需要兩個(gè)路由:一個(gè)用于將用戶重定向至認(rèn)證提供網(wǎng)站,另一個(gè)用于認(rèn)證之后,從認(rèn)證服務(wù)接收回調(diào)。下面是一個(gè)使用 Socialize facade 的示例:
public function redirectToProvider()
{
return Socialize::with('github')->redirect();
}
public function handleProviderCallback()
{
$user = Socialize::with('github')->user();
// $user->token;
}
redirect 方法將用戶重定向到認(rèn)證 OAuth 的網(wǎng)站,而 user 方法會(huì)獲取返回的請(qǐng)求,以及從認(rèn)證網(wǎng)站取得的用戶信息。在重定向至用戶之前,你也可以設(shè)定請(qǐng)求的「 scopes 」:
return Socialize::with('github')->scopes(['scope1', 'scope2'])->redirect();
一旦你取得用戶實(shí)例,你能獲取到更多的用戶詳細(xì)信息:
$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();
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: