繁体   English   中英

RESTful路由-API中的标头授权

[英]RESTful Routing - Header Authorization in APIs

在API的上下文中,如果您使用Authorization Header令牌对每个请求进行用户身份验证,那么您如何设置RESTful路由,否则将在URL请求中使用“用户ID”?

例:

POST /api/school/5/user

将用户添加到学校

DELETE /api/school/5/user/???
从学校中删除用户

但是,DELETE请求将在请求中要求用户ID,如果您使用的是Bearer Authorization令牌,则不会在URL中传递该ID,这将使此类资源难以设置。

一般如何处理?

我为此找到的最佳解决方案是:

1)您可以通过URL传递用户ID,但只需将其与从授权令牌中检索到的用户的用户ID进行比较即可。 因此,您可能会有一个类似以下的URL:

/api/school/5/user/7

然后在您的中间件中,检查您的Authoring Heaer中的用户是否与通过URL传递的用户匹配。 这样,您可以维护RESTful路由。

要么

2)更改一些URL结构,并使用Me路由前缀。 因此,任何基于已登录用户的路由都应以Me (或类似名称)为前缀。 Spotify,Facebook和许多其他公司的API都使用此功能。

我喜欢第一个解决方案,因为尽管第一个解决方案似乎更标准,但在URL中不必要地传递用户ID的想法似乎并不理想。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM