Laravel 5.2 Socialite Facebook API登录重定向错误
我的Facebook登录在Laravel 5.2中突然停止使用Socialite包。 我已经有了几天的功能,而且看起来似乎下降了。 我对Laravel相当陌生,所以如果它很简单,请给予一些恩惠。
我得到这个错误:
“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', 'AuthFacebookController@redirectToProvider');
Route::get('auth/facebook/callback', 'AuthFacebookController@handleProviderCallback');
FacebookController.php
namespace AppHttpControllersAuth;
use IlluminateHttpRequest;
use AppHttpRequests;
use AppHttpControllersController;
use AppSocialAccountService;
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 LaravelSocialiteContractsUser 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;
}
}
}
对,如果有人.env
像这样的问题,我可以相当肯定你的路线或回调网址有点不正确,无论是在你的developers.facebook.com
帐户还是你的.env
文件配置中。 在我的.env
我的情况下,我有一个额外的尾部'/'
回调。
导致重定向问题:
FACEBOOK_CALLBACK_URL=http://localhost:8000/auth/facebook/
修复了重定向问题:
FACEBOOK_CALLBACK_URL=http://localhost:8000/auth/facebook
来自Facebook的回调附加'/callback?code=xxxxYOUR-TOKENxxxxxx'
所以有了这个额外的'/'
,似乎让引起重定向循环的回调变得混乱。
上一篇: Laravel 5.2 Socialite Facebook API login redirect error
下一篇: Nexmo Messaging API