Ios 获取OAuth2访问令牌时出错-授予无效。但它是有效的

Ios 获取OAuth2访问令牌时出错-授予无效。但它是有效的,ios,oauth-2.0,token,google-client,Ios,Oauth 2.0,Token,Google Client,试图在iOS上使用Google对后端服务器进行身份验证,代码用于使用较旧的Google客户端库 $client = new Google_Client(); $oauth2 = new Google_Service_Oauth2($client); $client->setApplicationName('MyApp'); $client->setClientId($google_config["clientId"]); $client->setClientSecret($go

试图在iOS上使用Google对后端服务器进行身份验证,代码用于使用较旧的Google客户端库

$client = new Google_Client();
$oauth2 = new Google_Service_Oauth2($client);
$client->setApplicationName('MyApp');
$client->setClientId($google_config["clientId"]);
$client->setClientSecret($google_config["clientSecret"]);
$client->setRedirectUri("");
$client->setDeveloperKey($google_config["developerKey"]));
Log::error("Google/authcode", $request->get('token'));
if (! isset($_SESSION['access_token'])) {
    try {
    $client->authenticate($request->get('token'));
    } .... THROWS exception: Error fetching OAuth2 access token, message: 'invalid_grant:
正在尝试针对以下内容验证令牌:

所有工作都成功地表明令牌是有效的

编辑: 刚刚添加verifyIdToken调用后发现: 无效的颁发者,!=accounts.google.com似乎这就是我失败的原因。我猜iOS sdk和PHP的设置是不同的?或者,这可能与此无关,并且假定这不是来自iOS设备的服务器授权。因为如果我不断更改服务器端代码,即更改OAUTH2_颁发者的身份,我将得到错误的收件人错误,这是有意义的,因为我使用iOS客户端获得的令牌ID来授权服务器

旧版本的iOS应用程序也可以正常工作。但令牌是完全不同的,尽管验证也很好。
非常感谢您的帮助。

我想我误解了文档。为了对服务器进行授权,需要将googleUser.serverAuthCode从

- (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)googleUser
 withError:(NSError *)error { ....
如果仅使用iOS端授权用户googleUser.authentication.accessToken验证后端服务器,则需要在服务器上验证或解析服务器,以获取电子邮件和其他数据