什么是id_token google oauth

时间:2012-12-14 08:54:56

标签: oauth-2.0 google-oauth

当我尝试将oauth2用于googleapi时,我得到了以下结果。只有一件事:我找不到documentation中使用的id_token是什么。

{  "access_token" : "xxxx",  "token_type" : "Bearer",  "expires_in" : 3600,  "id_token" : "veryverylongstring",  "refresh_token" : "abcdefg"}

2 个答案:

答案 0 :(得分:54)

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

答案 1 :(得分:1)

id_token在OPEN_ID Connect协议中使用。用户已获得授权和身份验证的地方。 身份验证和授权之间的区别。 http://www.differencebetween.net/technology/difference-between-authentication-and-authorization/ 您将获得id_token和access_token。

id_token包含有关用户身份验证的信息。 ID令牌类似于由OpenID提供商(OP)签名的标准JWT格式的身份证的概念。要获得一个,客户端需要将用户发送到带有身份验证请求的OP。

ID令牌的功能

  1. 在OpenID(sub)中声明用户的身份,称为subject。
  2. 指定发行机构(瑞士)。
  3. 是针对特定受众(即客户(aud))生成的。
  4. 可能包含一个随机数(一次)。
  5. 可以根据强度(acr)指定何时(auth_time)和方式, 用户已通过身份验证。
  6. 有问题(iat)和到期时间(exp)。
  7. 可能包括要求提供的有关该主题的其他详细信息,例如 名称和电子邮件地址。
  8. 经过数字签名,因此可以通过预期的方式进行验证 收件人。可以选择出于保密目的进行加密。

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

client.addHeader("APIKEY","HESOYAM");
client.addHeader("APISECRET","BAGUVIX");