0

我正在使用 OAuth 2 的网站上工作,但我在 Google 的登录过程中遇到了一些问题。

一切正常,直到我去获取访问令牌。当我使用 facebook 执行此操作时,它会返回 url 编码,就像规范一样:

access_token={access-token}&expires={seconds-til-expiration}

当我用谷歌做同样的事情时,我得到了相同的数据,但在 json 中,也是按照我能找到的 speec:

{
  "access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in":3920,
  "token_type":"Bearer"
}

这是意料之中的吗?我能做些什么来让其中任何一个与另一个一致吗?还是我只需要把它吸起来并编写我的代码来处理这个问题?

4

2 回答 2

1

好吧,这不是您会发现不同 OAuth 提供程序的唯一不一致之处。scopes(自然)不同,user profile也会不同(例如,您将在一个中获得last_name,在另一个中获得family_name,两者含义相同)。在我们的系统中,我们选择将所有提供者标准化为一个共同的表示。我们还隐藏了不同提供商之间的差异。但是在我们的例子中,我们处理了相当多的提供者,并且我们希望为所有提供者提供一个单一的接口。

于 2013-08-24T00:36:38.380 回答
0

谷歌根据规范返回结果: https ://www.rfc-editor.org/rfc/rfc6749#section-5.1

请求以 URL 编码格式发送。令牌端点的响应始终是 JSON。

于 2013-08-23T23:12:17.413 回答