【问题标题】:Using laravel 5.4 with Socialite ClientException Facebook error "This authorization code has been used"将 laravel 5.4 与 Socialite ClientException Facebook 错误“已使用此授权码”一起使用
【发布时间】:2018-06-03 08:08:19
【问题描述】:

我遇到了一个非常奇怪的问题。

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

我目前正在使用最新版本的社交名流。

socialcontroller 上的回调函数:

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

auth()->login($user);


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

社交账户服务:

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;

    }

感谢任何帮助!

【问题讨论】:

  • 如果您的网速不稳定,最终发送了两个请求怎么办?如果你的服务器有问题怎么办?你有没有在另一台服务器上用同样的软件测试过代码?
  • 同样的问题,在两台不同的服务器上测试过

标签: php facebook laravel laravel-socialite


【解决方案1】:

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

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

注意,可以是'localhost'

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 2013-02-20
    • 2016-03-05
    • 2016-06-28
    • 1970-01-01
    • 2023-03-26
    • 2021-03-01
    相关资源
    最近更新 更多