在每次调用我的 REST API 时,我都要求客户端传递用户的 facebook 访问令牌,该令牌对用户进行身份验证。传递此令牌的最佳做法是什么?
也许作为 HTTP 问号后面的参数
GET /api/users/123/profile?access_token=pq8pgHWX95bLZCML
或以某种方式在请求的标头中,类似于 HTTP 基本身份验证
- 也许是第三种选择?(我已经排除在 JSON 中传递它,因为我希望令牌也可以在
GET
调用中传递,所以我认为 JSON 不适合那里)
在每次调用我的 REST API 时,我都要求客户端传递用户的 facebook 访问令牌,该令牌对用户进行身份验证。传递此令牌的最佳做法是什么?
也许作为 HTTP 问号后面的参数
GET /api/users/123/profile?access_token=pq8pgHWX95bLZCML
或以某种方式在请求的标头中,类似于 HTTP 基本身份验证
GET
调用中传递,所以我认为 JSON 不适合那里)如果您查看所有流行的 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 处理所有请求,甚至用于检索数据。检查此链接以查看他们的文档。请注意,他们使用 POST 来检索数据并传递 JSON 参数。