我正在使用OAuth 2的网站上工作,而且我在使用Google登录过程时遇到了一些问题。
一切都很完美,直到我去获取访问令牌。当我用facebook做这个时,它返回url编码,就像规范:
access_token={access-token}&expires={seconds-til-expiration}
当我对谷歌做同样的事情时,我得到了相同的数据,但在json中,也是我能找到的那篇文章:
{
"access_token":"1/fFAGRNJru1FTz70BzhT3Zg",
"expires_in":3920,
"token_type":"Bearer"
}
这是不可取的,我能做些什么来使其中一个符合另一个?或者我是否只需要填写并编写我的代码来处理这个问题?
答案 0 :(得分:1)
嗯,这不是您在不同OAuth提供商中找到的唯一不一致。 scopes
(自然地)不同,user profile
也会有所不同(例如,您将在一个中获得 last_name ,在另一个中获得 family_name ,两者都是意思相同)。在our system中,我们选择将规范化所有提供程序转换为公共表示形式。我们还隐藏了不同提供商之间的差异。但在我们的案例中,我们处理的是相当多的提供商,我们希望为所有提供商提供单一界面。
答案 1 :(得分:0)
Google会根据规范返回结果: http://tools.ietf.org/html/rfc6749#section-5.1
请求以URL编码格式发送。令牌端点的响应始终为JSON。