小编Piq*_*uan的帖子

间歇性(但经常)Google Identity Toolkit验证错误:"明文太大"

我有时 - 但并非总是 - 从Google身份工具包中收到"明文太大"的错误.它似乎在应该尝试验证签名的部分(使用RSA).由于它验证了有效载荷的SHA256散列,因此明文大小不应有任何变化.

如果我记录它正在尝试使用的令牌,并将其与https://jwt.io/上的调试器一起提供给Google RSA证书(来自https://www.googleapis.com/identitytoolkit/v3/relyingparty/ publicKeys ;使用jwt.io放在"kid"下面顶部红色框中的密钥标识符,它表示签名有效.

这只发生在一部分时间,可能略高于一半.如果我重复身份验证,似乎没问题.

这似乎只发生在新的身份验证上; 如果它已经过身份验证,一切正常,即使我目前没有使用会话cookie:我的代码会在每个请求上验证gtoken身份验证.一旦我登录,一切都很好,直到我退出(再次,通过gitkit).但是,如果我以后再次登录,我很可能会遇到这个错误.

我正在为我的基础设施使用App Engine.dev_appserver和部署的App Engine以及使用JavaScript gitkit库的桌面浏览器和使用Objective C gitkit库的iOS应用程序都会发生这种情况.(我没有针对dev_appserver使用iOS测试,仅在部署中.)

我正在使用的代码如下所示:

    gtoken = cookie["gtoken"].value
    logging.debug("Verifying Google Identity Toolkit token: %s",
                  gtoken)
    gitkit_user = gitkit_instance.VerifyGitkitToken(gtoken)
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪如下(从上面引用的行开始):

  File "/base/data/home/apps/redacted/redacted.py", line 218, in redacted:
    gitkit_user = gitkit_instance.VerifyGitkitToken(gtoken)
  File "/base/data/home/apps/redacted/lib/identitytoolkit/gitkitclient.py", line 266, in VerifyGitkitToken
    parsed = crypt.verify_signed_jwt_with_certs(jwt, certs, aud)
  File "/base/data/home/apps/redacted/lib/oauth2client/crypt.py", line 240, in verify_signed_jwt_with_certs
    _verify_signature(message_to_sign, signature, certs.values())
  File "/base/data/home/apps/redacted/lib/oauth2client/crypt.py", line 119, in _verify_signature
    if verifier.verify(message, signature):
  File "/base/data/home/apps/redacted/lib/oauth2client/_pycrypto_crypt.py", line 52, in verify …
Run Code Online (Sandbox Code Playgroud)

google-cloud-platform google-identity-toolkit google-identity

5
推荐指数
1
解决办法
286
查看次数