是否更好地处理登录的用户数据服务器端或客户端?

时间:2018-02-18 15:14:45

标签: laravel rest api vue.js

我正在使用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());

我何时会使用每种方法?为什么?

1 个答案:

答案 0 :(得分:1)

这取决于您为用户提供Post资源所需的访问级别。

第一种方法是让任何用户都能够访问任何用户的资源,例如:

- Twitter公共用户的推文 - 作者在公共杂志上发表的帖子
- 等等

当您想要限制用户仅查看他/她的资源时,通常会使用第二种方法。例如:

- 查看或编辑他/她的个人资料 - 访问历史数据(如订单详情,喜欢,发票)
- 等等

以这种方式保护端点以防止用户A修改或访问他/她可能无权制作/查看的内容。

使用任何这些方法都将取决于用例。