什么是id_token google oauth

kit*_*kid 52 oauth-2.0 google-oauth

当我尝试将oauth2用于googleapi时,我得到了以下结果.只有一件事:我找不到文档中使用的id_token .

{  "access_token" : "xxxx",  "token_type" : "Bearer",  "expires_in" : 3600,  "id_token" : "veryverylongstring",  "refresh_token" : "abcdefg"}
Run Code Online (Sandbox Code Playgroud)

vla*_*tko 56

id_token是一个JSON Web令牌(JWT).如果你解码它,你会看到它包含多个断言,包括用户的ID.有关详细信息,请参阅此答案.

  • 是否有任何其他 oauth 提供商(facebook、twitter 等)支持这样的东西?我想保存服务器-> 提供商往返。 (2认同)

Nou*_*had 10

id_token在ID连接协议,其中,所述用户被认证以及授权使用。(身份验证和授权之间有一个重要区别。)您将获得id_tokenaccess_token

id_token值包含用户的身份验证信息。ID 令牌类似于身份证的概念,采用标准 JWT 格式,由 OpenID 提供者 (OIDP) 签名。要获得一个,客户端需要将用户与身份验证请求一起发送到他们的 OIDP。

ID令牌的特点:

  1. 断言用户的身份,在 OpenID (sub) 中称为主题。
  2. 指定颁发机构 (iss)。
  3. 是为特定受众生成的,即客户端 (aud)。
  4. 可能包含一个随机数(nonce)。
  5. 可以指定何时 (auth_time) 以及如何在强度 (acr) 方面对用户进行身份验证。
  6. 有问题 (iat) 和过期时间 (exp)。
  7. 可能包括有关主题的其他要求的详细信息,例如姓名和电子邮件地址。
  8. 经过数字签名,因此可以由预期收件人进行验证。可以选择加密以确保机密性。

ID 令牌语句或声明被封装在一个简单的 JSON 对象中:

{
  "sub"       : "alice",
  "iss"       : "https://openid.c2id.com",
  "aud"       : "client-12345",
  "nonce"     : "n-0S6_WzA2Mj",
  "auth_time" : 1311280969,
  "acr"       : "c2id.loa.hisec",
  "iat"       : 1311280970,
  "exp"       : 1311281970
}
Run Code Online (Sandbox Code Playgroud)

  • 表述清晰且例证充分,所以+1。我也冒昧地对其进行了一些编辑。希望你不介意。 (2认同)