使用laravel 5.4与Socialite ClientException Facebook错误"此授权代码已被使用"

时间:2017-08-21 23:10:27

标签: php facebook laravel laravel-socialite

我有一个非常奇怪的问题。

我在我的网站上使用Facebook登录。 我随机失败并随机工作......

有时当我点击登录Facebook时,它可以正常工作并登录/创建帐户。然后我退出并再次登录,它失败了。当我继续尝试登录时,它将在错误之间再次随机登录。

错误:

(1/1) ClientException
Client error: `POST https://graph.facebook.com/v2.10/oauth/access_token` resulted in a `400 Bad Request` response:
{"error":{"message":"This authorization code has been used.","type":"OAuthException","code":100,"fbtrace_id":"B1P9nm3GRb (truncated...)

enter image description here

我目前使用社交网站的最新版本。

社交控制器上的

回调函数:

$user = $service->createOrGetUser(Socialite::driver('facebook')->user());

auth()->login($user);


return redirect()->to('/home');

SocialAccountService:

public function createOrGetUser(ProviderUser $providerUser)
{

    $account = SocialAccount::where('provider_user_id', $providerUser->getId())->first();

    if ($account) {

        return $account->user;

    } else {

        $user = User::where('facebook', $providerUser->getId())->first();

        if (!$user) {

            $password = Hash::make($providerUser->getId());
            $user = User::create([
                'username' => $providerUser->getName(),
                'email' => $providerUser->getEmail(),
                'avatar' => $providerUser->getAvatar(),
                'facebook' => $providerUser->getId(),
                'password'=> $password,
                'level' => 0
            ]);

            $account = SocialAccount::create([
                'user_id' => $user->id,
                'provider_user_id' => $providerUser->getId(),
                'provider' => 'facebook'
            ]);

        }


        return $user;

    }

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

在config / session.php文件中有以下行:

 `'domain' => env('SESSION_DOMAIN', 'your-domain-here'),`

注意,它可以是'localhost'

然后只需清除缓存:php artisan cache:clear

然后将您的请求重新发送到Facebook。