如果用户是 post React + Django Rest Framework 的所有者,则条件组件呈现

Conditional component render if user is an owner of post React + Django Rest Framework

我有f.e。用户和 Post 模型。用户对象有一个 id,Post 对象有所有者 id。我想在用户是 Post 的所有者时呈现 <Edit /> 按钮。最好的方法是什么?

简单地说,我可以使用我的 django 端点之一从数据库中获取当前用户 ID 并检查 if (user.id === post.owner) 但这是最​​好的方法吗?

另外,如果非所有者的用户通过 link 打开编辑站点,我该如何阻止或重定向这些用户。我是否也应该简单地检查是否 if user.id === post.owner?

一个额外的问题:我现在将我的 JWT 令牌存储在 localStorage 中。如果我想把它隐藏在我的 blowser 中,我应该寻找什么(如果我单击 F12,我可以在应用程序选项卡中找到它)?

您可以将检查卸载到编辑组件,将 user.id 发送给它(它应该有 post.owner),然后在编辑组件内部处理它。

为了避免人们直接访问编辑 link,有许多不同的选项可以防止或使其更难,这里有两个简单的选项:

  1. 在页面加载时使用 useEffect 挂钩并检查,如果未授权则重定向到上一页
  2. 随机化 url 所以每次都不一样