在每次调用我的 REST API 时,我都要求客户端传递用户的 facebook 访问 token ,以对用户进行身份验证。传递此 token 的最佳做法是什么?
可能作为HTTP问号后面的参数
GET /api/users/123/profile?access_token=pq8pgHWX95bLZCML
或者以某种方式在请求的 header 中,类似于 HTTP 基本身份验证
- 也许还有第三种选择? (我已经排除了在 JSON 中传递它,因为我希望 token 也在
GET
调用中传递,所以我认为 JSON 不适合那里)
最佳答案
如果您查看所有流行的 OAuth 提供商(Google、Facebook、Pocket、Git 等)提供的 API 端点,您会发现它们都有 HTTPS 端点。
您可以将访问 token 传递给提供者的方式是 -
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 参数。
关于http - 客户端应该如何将 facebook 访问 token 传递给服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16526211/