我的Facebook登錄在Laravel 5.2中使用Socialite包時突然停止工作。我已經有了幾天的功能,而且看起來似乎下降了。我對Laravel相當陌生,所以如果它很簡單,請給予一些恩惠。Laravel 5.2 Socialite Facebook API登錄重定向錯誤
我得到這個錯誤:「該www.facebook.com頁面無法正常工作www.facebook.com重定向你太多次」
我試過重新啓動本地服務器,運行命令如php artisan config:clear
。還嘗試安裝與作曲家運行版本"laravel/socialite": "^2.0"
。我不禁想到它實際上是Facebook Developer Apps API配置中的東西,但一切看起來都不錯!
我會提供我的代碼,以防萬一誰有時間幫助並能發現任何錯誤。我用這個鏈接爲指導,走下車https://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-facebook-login.html#.WK8bGBKLRBw
.ENV
FACEBOOK_CLIENT_ID=xxxxxxxxx
FACEBOOK_CLIENT_SECRET=xxxxxxxx
FACEBOOK_CALLBACK_URL=http://localhost:8000/auth/facebook/
routes.php文件
Route::get('auth/facebook', 'Auth\[email protected]');
Route::get('auth/facebook/callback', 'Auth\[email protected]');
FacebookController.php
namespace App\Http\Controllers\Auth;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\SocialAccountService;
use Socialite;
class FacebookController extends Controller
{
public function redirectToProvider()
{
//send off a request and to FB and get a token
return Socialite::driver('facebook')->redirect();
}
public function handleProviderCallback(SocialAccountService $service)
{
$user = $service->createOrGetUser(Socialite::driver('facebook')->user());
auth()->login($user);
return redirect()->to('account/{id}/myaccount');
}
}
SocialAccountService.php
namespace App;
use Laravel\Socialite\Contracts\User as ProviderUser;
class SocialAccountService
{
public function createOrGetUser(ProviderUser $providerUser)
{
$account = SocialAccount::whereProvider('facebook')
->whereProviderUserId($providerUser->getId())
->first();
if ($account) {
return $account->user;
} else {
$account = new SocialAccount([
'provider_user_id' => $providerUser->getId(),
'provider' => 'facebook'
]);
$user = User::whereEmail($providerUser->getEmail())->first();
if (!$user) {
$user = User::create([
'email' => $providerUser->getEmail(),
'name' => $providerUser->getName(),
]);
}
$account->user()->associate($user);
$account->save();
return $user;
}
}
}