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'

所以有了这个额外的'/' ,似乎让引起重定向循环的回调变得混乱。

链接地址: http://www.djcxy.com/p/5655.html

上一篇: Laravel 5.2 Socialite Facebook API login redirect error

下一篇: Nexmo Messaging API