首页 文章

使用带有Socialite ClientException的laravel 5.4 Facebook错误“此授权代码已被使用”

提问于
浏览
1

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

我在我的网站上使用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

我目前正在使用最新版本的Socialite .

socialcontroller上的回调函数:

$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

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

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

    注意,它可以是 'localhost'

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

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

相关问题