[英]How login with Facebook and Google without authentication in Laravel 5.1 using socialite version 2.1?
'facebook' => [
'client_id' => 'id',
'client_secret' =>
'fgdfgsdfgrtt45453',
'redirect' => 'http://example.com/callback',
],
在route.php中
Route::get('/redirect', 'SocialAuthFacebookController@redirect');
Route::get('/callback', 'SocialAuthFacebookController@callback');
而且我在App中添加了Services/SocialFacebookAccountService.php
目录。
SocialFacebookAccountService.php
<?php
namespace App\Services;
use App\SocialFacebookAccount;
use App\User;
use Laravel\Socialite\Contracts\User as ProviderUser;
class SocialFacebookAccountService {
public function createOrGetUser(ProviderUser $providerUser) {
$account = SocialFacebookAccount::whereProvider('facebook')
->whereProviderUserId($providerUser->getId())
->first();
echo 'Account info : ';
if ($account) {
return $account->user;
} else {
$account = new SocialFacebookAccount([
'provider_user_id' => $providerUser->getId(),
'provider' => 'facebook'
]);
$user = User::whereEmail($providerUser->getEmail())->first();
if (!$user) {
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
'password' => md5(rand(1, 10000)),
]);
}
$account->user()->associate($user);
$account->save();
return $user;
}
}
}
请帮助,如何在回调中获取用户信息。
在您的callback
方法中:
public function callback($provider=facebook)
{
if($user = $this->socialite->with($provider)->user()){
dd($user); //user details
}else{
return 'something went wrong';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.