OAuth:将访问令牌作为json返回是否可以?

时间:2013-03-01 13:32:10

标签: javascript json oauth jsonp

当我返回请求令牌(我是服务器)时,我会在响应正文中发送值:

oauth_token=946ccd316c&oauth_token_secret=395cfee8ca&oauth_callback_confirmed=true

我想弄清楚是否有可能在jsonp上跳舞。签名和请求工作正常,但由于正文不是json,解析过程中响应失败。

所以,我可以回复身体编码为jsonp insted(如果客户请求它),像这样:

callback({oauth_token:'946ccd316c',oauth_token_secret:'395cfee8ca',oauth_callback_confirmed:true})

它可能会奏效。我的问题是:

这会破坏所有标准吗?我可以改变身体的编码吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

OAuth规范未指定发送令牌的格式。所以我认为如你所示,你可以在JSON对象中返回它。

事实上Google还会在JSON对象中返回 access_token ,如下所示:

response :{
  "access_token" : "ya29S6ZQbiBQpA5Rz8oty00xj-xydfdfddteerer-1eM",
  "token_type" : "Bearer",
  "expires_in" : 3600
 }

答案 1 :(得分:0)

查看OAuth 2.0标准 - 找到RFC here。对于所需的访问令牌行为,您会对4.4.2(访问令牌请求)和4.4.3(访问令牌响应)一节感兴趣。未指定响应正文的格式;实际上,在JSON中编码的访问令牌响应的规范中显示了一个示例。只要将内容类型设置为application / json,并使用所需的参数名称,就可以了。