如果用户是 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,有许多不同的选项可以防止或使其更难,这里有两个简单的选项:
- 在页面加载时使用 useEffect 挂钩并检查,如果未授权则重定向到上一页
- 随机化 url 所以每次都不一样
我有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,有许多不同的选项可以防止或使其更难,这里有两个简单的选项:
- 在页面加载时使用 useEffect 挂钩并检查,如果未授权则重定向到上一页
- 随机化 url 所以每次都不一样