说我有一个端点:/task
,它返回task
资源。
这是所有经过身份验证的用户都有权访问的终结点,但它只应返回用户有权访问(创建,拥有或共享)的tasks
的子集。
我不想卸载此参数以查询参数,并希望客户端根据用户ID进行过滤。
处理此问题的方法有哪些?
是否有使用Auth0或其他第三方授权服务的东西?
一种处理此问题的RESTful方法是按如下方式嵌套端点:/user/{id}/task
。
保护端点,仅允许经过身份验证的用户访问该端点。
然后验证URI中的ID是否与发出请求的用户匹配,或者该用户是管理员。如果令牌在有效负载中包含用户ID,则只需检查它是否与URI中的ID相匹配即可。
可以在诸如/user/{id}/task/{taskid}
之类的端点上做同样的事情。但是,还需要进行其他检查,以确保给定的用户是该任务的所有者。