我正在使用JWT auth构建一个基于REST的无状态应用程序。我可以通过实现从客户端传递ID参数的变量服务器端来获取(问题与GET
请求相关)所有用户帖子:
http://example.com/api/v1/posts?user_id=1
$q = $q->where('user_id', '=', $data['user_id']);
或者,我可以检查用户ID服务器端,并创建一个新路由以仅获取登录用户帖子:
http://example.com/api/v1/me/posts
$q = $q->where('user_id', '=', Auth::user->id());
我何时会使用每种方法?为什么?
答案 0 :(得分:1)
这取决于您为用户提供Post
资源所需的访问级别。
第一种方法是让任何用户都能够访问任何用户的资源,例如:
- Twitter公共用户的推文
- 作者在公共杂志上发表的帖子
- 等等
当您想要限制用户仅查看他/她的资源时,通常会使用第二种方法。例如:
- 查看或编辑他/她的个人资料
- 访问历史数据(如订单详情,喜欢,发票)
- 等等
以这种方式保护端点以防止用户A修改或访问他/她可能无权制作/查看的内容。
使用任何这些方法都将取决于用例。