【问题标题】:Google api php : Wrong audience in jwt for iOS onlyGoogle api php:仅适用于 iOS 的 jwt 中的受众错误
【发布时间】:2019-09-05 13:21:03
【问题描述】:

我是新来的,是我公司唯一的开发人员,他们要求我用他们的移动应用程序清除一些错误。

我正在使用 Ionic 应用程序,我们为用户提供谷歌登录选项,使用 cordova 插件“cordova-plugin-googleplus”。

我遇到的问题是当我使用“google-api-php-client”库 v1.1.5 将它发送到我的 API 时,我从 google 获得的用户 tokenId 不起作用:
- 当tokenId来自Android设备时,连接正常,token中的azp和aud有不同的值,一个是Android客户端ID,另一个是Web客户端ID。
- 当tokenId来自iOS设备时,无法连接,azp和aud都有iOS客户端id值。

因此,在 iOS 情况下,当 google api php 库根据我的配置中的客户端 ID 检查 tokenId 时,它会失败,因为配置会提供 Web 客户端 ID。

我有几个问题,iOS 的 tokenId 没有 Android 的 Web 客户端 ID 是否正常?并且可以在配置中允许多个客户端 ID 吗? (所以我可以同时允许 Web 客户端 ID 和 iOS ID)

感谢您的建议!

【问题讨论】:

    标签: ios ionic3 cordova-plugins google-api-php-client google-signin


    【解决方案1】:

    我找到了答案

    显然对于 iOS,如果您在调用 google 登录时未添加选项 'offline' : 'true',则它不会使用您指定的 webClientID。 不知道为什么它会为 iOS 而不是 Android 这样做

    它在 GooglePlus.m 中:

    NSString* serverClientId = options[@"webClientID"];
    ...
    if (serverClientId != nil && offline) {
        signIn.serverClientID = serverClientId;
    }
    

    我仍然对为什么 iOS 和 Android 的行为不同或者这是一个错误感兴趣,但希望有一天这会对其他人有所帮助

    【讨论】:

      猜你喜欢
      • 2018-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多