对于Google get令牌调用,redirect_uri有什么意义?

时间:2012-10-23 10:39:17

标签: api oauth-2.0

我有一个使用Google API的网络应用。验证过程会对Google进行两次调用,第一次调用code,第二次调用code来调用token。两个调用都采用redirect_uri参数。第一个调用使用此参数,我预期,重定向回redirect_uri,然而,第二个调用,获取令牌,不重定向,禁止验证它似乎忽略此参数,所以有什么意义它?

1 个答案:

答案 0 :(得分:4)

OAuth 2.0 specification中的访问令牌请求中的redirect_uri参数被描述为必需参数。

背后的原因在同一文档的10.6部分中有详细描述。简而言之:

  1. 攻击者可以通过操纵request_uri授权请求来获取授权码。能够注意到这一伎俩的唯一两方是受害者(合法用户)和服务器。客户仍然不知道这些操纵。
  2. 即使使用代码,攻击者也无法将其交换为访问令牌,但它可以通过代表自身发送带有被盗代码的“回调响应”来欺骗客户端。
  3. 如果客户端可以将收到的代码交换给令牌,则会向受害者授予对受害者数据的访问权限。幸运的是,由于客户端redirect_uri与服务器看到的客户端{{1}}不匹配,因此请求将被拒绝。