我正在使用NodeJ编写休息服务并表达中间件。我有以下问题 -
我必须在每个服务中使用userid和token进行身份验证,而不管方法类型如GET
,POST
,PUT
和DELETE
。采用这两个参数的最佳方法是什么,即请求标头或查询参数?我不想把它作为身体参考,因为获取请求不会有身体。
我想编写一个方法类型GET
的服务来进行数据检索,这个调用的参数是字符串和日期。我是如何将params作为查询参数传递的,特别是日期参数应该将其作为js日期或任何其他格式传递?
GET - https://localhost:someport/<objectid>/<createddate>
headers - x-user-id:someid
x-access-token:sometoken
如果这样,那么应该传递创建日期的格式。
或者我应该使用下面的那个?
GET - https://localhost:someport/
headers - x-user-id:someid
x-access-token:sometoken
x-object-id:someid
x-created-date:somedate
答案 0 :(得分:1)
休息API设计的最佳实践表明,将非敏感用户信息的参数公开以获取请求作为查询参数。所以用户id和令牌之类的东西应该放在标题中,其他东西可以放入get request params。
选择第一个在标题中只包含用户ID和标记的文件。
答案 1 :(得分:1)
请求标头是发送这类敏感信息的最佳位置。标头在http请求的所有方法中都很常见。因此,您不必担心GET
,POST
,PUT
等方法。如果你使用查询参数,我们会在网址中更难看。
此外,我不知道UserID
与token
的使用情况。因为在restful服务器中我们也使用令牌来识别用户。因此,我们通常不会发送用户ID。