【问题标题】:flutter google_sign_in get id token without firebase颤振google_sign_in在没有firebase的情况下获取id令牌
【发布时间】:2021-10-28 01:30:18
【问题描述】:

我查看了很多与此主题相关的帖子,但没有一个能够解决我的问题,所以这里是: 我使用 google_sign_in 能够在不通过 firebase 的情况下使用 gmail 帐户进行身份验证。一切进展顺利,我很好地检索了用户信息,但令人担忧的是,无论我进行何种操作,我的 idToken 的值都是空的。但是,我确实通过谷歌控制台注册了我的应用程序,这是我的代码:

final GoogleSignInAccount user = await googleSignIn.signIn();
  GoogleSignInAuthentication googleSignInAuthentication = await user.authentication;
  print('======== Google auth ===========');
  print(googleSignInAuthentication.accessToken);
  print(googleSignInAuthentication.idToken);
  print('===================');

这是它返回给我的内容:

我很好地获得了访问令牌,但令牌 id 为空,我想知道:

  • 如果您有自定义 API,是否可以在不通过 firebase 的情况下检索 idToken?
  • 如果不是,在哪一部分输入的方法能够检索到这个令牌?

【问题讨论】:

    标签: android flutter dart google-signin


    【解决方案1】:

    是的,你可以。

    我很久以前就使用 PHP 来处理 google-auth 令牌验证。

    这是关于google_sign_in: ^4.4.2

    The Github Sample Project

    1. 在以下位置创建 GCP 项目 https://console.cloud.google.com/projectcreate

    2. 接下来转到https://developers.google.com/identity/sign-in/web/sign-in 并选择配置项目,客户​​端为Android。 输入包名和SHA1

    生成 SHA1 签名证书。

    1. 在终端执行(分配密码和一些其他参数)

      keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias androiddebugkey

    2. 通过上述步骤,您将获得一个 key.jks 文件。

    3. android/app/build.gradle android 下添加这些设置:

      signingConfigs {
          debug {
              storeFile file('key.jks') 
              storePassword 'epynic'
              keyAlias 'androiddebugkey'
              keyPassword 'epynic'
          }
      }
      buildTypes {
          debug {
              signingConfig signingConfigs.debug
          }
      }
      

      storeFile file('/home/epynic/key.jks') - 步骤 2 中生成的密钥文件的路径

      storePassword 'epynic' & keyPassword 'epynic' 用于在步骤 2 中生成密钥的密码。

    4. 在终端执行 keytool -keystore key.jks -list -v 并在输出中您将获得 SHA-1 指纹。

    5. AndroidManifest.xml 文件的package= 属性下找到您的包名称。

    【讨论】:

    • 对不起,响应时间,我已经执行了这些步骤,但不幸的是它仍然导致空 idtoken。
    • idtoken 仍然为空。
    猜你喜欢
    • 2022-07-06
    • 2019-09-23
    • 2012-11-03
    • 1970-01-01
    • 2022-11-24
    • 1970-01-01
    • 2012-04-30
    • 2019-08-15
    • 2019-12-31
    相关资源
    最近更新 更多