Laravel socialite 400 Bad Request回复

时间:2018-02-05 06:15:19

标签: laravel laravel-socialite

我创建了一个laravel socialte设置。它现在完全正常工作,现在显示错误(如下)。 1)我已经更改了client_secret 2)创建了新的oauth凭据 仍然无法正常工作

   public function redirectToGoogle()
        {
            return Socialite::driver('google')->redirect();
        }



         public function handleGoogleCallback()
        {

                $user = Socialite::driver('google')->stateless()->user();


                $user->getId();        // 1472352
                $user->getNickname();  // "overtrue"
                $name= $user->getName();      // "安正超"
                $emailid= $user->getEmail(); 
                $pic= $user->getAvatar();    // "anzhengchao@gmail.com"
return->redirect('welcome');

}

我创建了带有client_secret和客户端ID的env​​文件

  """
    Client error: `POST https://accounts.google.com/o/oauth2/token` resulted in a `400 Bad Request` response:\n
    {\n
      "error" : "invalid_grant",\n
      "error_description" : "Code was already redeemed."\n
    }\n
    """

1 个答案:

答案 0 :(得分:2)

当Google将身份验证码 code返回给您的社交网站时,它只能用于与访问令牌交换一次。多次执行操作会导致错误Code was already redeemed

流程应该是:

  1. 用户点击您网站上的登录按钮
  2. 您将用户重定向到Google,Google要求用户登录/授予您访问权限
  3. 如果成功,Google会使用一次性身份验证码 ?code=.....
  4. 重定向回给您
  5. 社交名称使用?code并与Google交换以获取用户的访问令牌。这只能在每个流程中完成一次。
  6. 您现在可以使用步骤4中请求的访问令牌来请求用户详细信息。
  7. 阅读类似的答案:https://stackoverflow.com/a/32710034/534862