客户端应该如何将facebook访问令牌传递给服务器?

时间:2013-05-13 15:52:25

标签: http rest authentication oauth-2.0 facebook-access-token

每次调用我的REST API时,我都要求客户端传递用户的facebook访问令牌,该令牌会对用户进行身份验证。传递此令牌的最佳做法是什么?

  1. 可能是HTTP问号背后的参数

    GET /api/users/123/profile?access_token=pq8pgHWX95bLZCML
    
  2. 或以某种方式在请求的标头中,类似于HTTP基本身份验证

  3. 也许是第三种选择? (我已经排除了在JSON中传递它,因为我希望在GET调用中传递令牌,所以JSON不适合我认为)

1 个答案:

答案 0 :(得分:40)

如果您查看所有热门OAuth提供商(Google,Facebook,Pocket,Git等)提供的API端点,您会发现它们都有HTTPS端点。

您可以将访问令牌传递给提供者的方式是 -

i)作为查询参数 -

  

https://yourwebsite.com/api/endpoint?access_token=YOUR_ACCESS_TOKEN

ii)在请求标题中 -

 GET /api/users/123/profile HTTP/1.1
 Host: yourwebsite.com
 Date: Tue, 14 May 2013 12:00:00 GMT
 Authorization: <YOUR_ACCESS_TOKEN>

这两种方法通常是大多数API支持的方法。你可以考虑做同样的事情。

iii)Pocket API根本不使用GET。他们使用POST来处理所有请求,甚至是检索数据。请查看此link以查看其文档。请注意,他们使用POST来检索数据并传递JSON参数。