当前位置: 首页 > 知识库问答 >
问题:

AppIdtyError:验证无记名令牌时错误的收件人

陈业
2023-03-14

我们在应用程序中使用一键式操作电子邮件标记。我们的电子邮件已被列入白名单,我们将发送电子邮件的电子邮件ID(XXX@YYY.com)列入白名单。

当我们尝试验证不记名令牌时,我们得到AppIdentityError:错误的收件人。完整堆栈跟踪:

文件“/app/components/happier_pages/py/lib/oauth2client/util.py”,第142行,位置_wrapper return wrapped(*args,**kwargs)文件“/app/component/happer_pages/py/lib/OAuth2clint/client.py”第1706行,验证_id_token return crypt。verify_signed_jwt_with_certs(id_token,certs,audience)文件“/app/components/happier_pages/py/lib/oauth2client/crypt.py”,第170行,在verify _signed_jwt_with_Cert(aud,audience,json_body))AppIdentityError:错误的收件人,“domain.com”!=“服务帐户id”{“iss”:“accounts.google.com”,“aud”:“mydomain.com”,“sub”:“1234556789”,“email_verified”:true,“azp”:”gmail@system.gserviceaccount.com“,“id”:“123456789”,“verified_email”:真,“email”:”gmail@system.gserviceaccount.com“cid”:gmail@system.gserviceaccount.com“,“iat”:123,“exp”:123}

以下是用于验证持有者令牌的代码片段:

GMAIL_ISSUEE = 'gmail@system.gserviceaccount.com'
GOOGLE_API_CLIENT_SERVICE_ID = 'xxxxx@developer.gserviceaccount.com'
BEARER_TOKEN=self.request.headers["Authorization"].split('Bearer ')[1]
token = client.verify_id_token(BEARER_TOKEN.strip(), GOOGLE_API_CLIENT_SERVICE_ID)

以上代码摘自https://developers . Google . com/Gmail/markup/actions/verificing-bearer-tokens:

共有1个答案

曹渝
2023-03-14

@Sagar已经证实这是有效的。

而不是:

client.verify_id_token(BEARER_TOKEN, GOOGLE_API_CLIENT_SERVICE_ID) 

将发件人域用作目标受众:

client.verify_id_token(BEARER_TOKEN, "yourdomain.com")
 类似资料:
  • 我一直在开发一个系统,使用JSON Web Tokens对我网站上的用户进行身份验证和授权。我的系统即将完成,但当我尝试在我的代码中使用[Authorize(“承载”)]属性时,我遇到了错误。错误如下: System.IdentityModel.Tokens。消息中出现SecurityTokenInvalidSignatureException:抛出异常:“System.IdentityModel

  • 问题内容: 我需要验证一个Google id_token,其中一个步骤涉及检查令牌签名。 首先,我从以下网址获取证书:https : //www.googleapis.com/oauth2/v2/certs,并从证书中提取模数(n)和指数(e)并生成公钥,然后分解令牌(标题,有效负载和摘要),然后将解码后的内容与Google pKey +摘要一起发送到rsa函数。 我陷入了这个验证错误: 这是代码

  • 我在使用jwt.io验证我的azure广告访问令牌时获得无效签名(在手动检查后将转移到scala代码)。 我正在使用 curl 生成访问令牌: 虽然它为我提供了访问令牌,但响应不包含“Id_token”。不知道为什么。 我正在使用 BEGIN 和 END 证书包装 https://login.microsoftonline.com/common/discovery/keys 中的公钥。(如 htt

  • 我目前正在使用Vapor开发Swift后端。我的iOS客户端使用新的iOS 13功能“使用Apple登录”。当用户登录时,我会得到一个身份令牌(访问令牌),这是一个由Apple签名的有效JWT令牌。这将在所有正在进行的通信中发送到服务器,以验证服务器提供的某些路由。 在服务器上,我想通过验证令牌签名来验证发送的令牌是否确实由Apple签名,并且不是由某些恶意用户专门创建的。Apple提供了一个HT

  • 使用库"firebase_id_token"验证ruby on rails中的Firebase id令牌。 一旦我用google_sign_in库从前端获得有效令牌并发送到后端,它总是提示“JWT::VerificationError(签名验证引发)”。尽管我已经检查了jwt.io,在那里我可以看到有效载荷和报头的信息,但无法验证签名。 firebase_id_token.rb 另外,我检查了密钥

  • 只是尝试使用Express服务器执行签名和验证JSON Web令牌的基本实现,但“验证”函数不断返回“无效令牌”错误。 当将生成的令牌从/路由粘贴到jwt.io调试器中时,它最初会说“无效签名”,但当我选中“秘密是base 64编码的”复选框时,调试器会验证签名,因此我尝试了base 64编码/解码我的秘密在签名和验证端,但没有任何工作。 我目前正在使用名为“REST Client”的VS代码扩充