使用授权保护MEAN Stack中的资源17 Mar 2025 | 阅读 2 分钟 在上一节中,我们成功地将创建者ID添加到我们的帖子中。 简单来说,我们在用户和帖子之间建立了连接,并将数据返回到前端。 在本节中,我们将利用此连接来拒绝删除或编辑帖子,如果它们是由未创建该帖子的用户发出的。 我们将使用以下步骤来执行此操作 1) 我们将返回到我们的posts.js文件,其中有路由的put和delete方法。 在put方法中,我们确保只有创建帖子的用户才能编辑它。 在这里,我们仅在帖子由登录的用户创建时才调用Post.updateOne()方法。 做到这一点的简单方法是,我们将另一个参数添加到我们拥有的条件中。 我们将在此处检查创建者字段。 创建者字段应等于请求中userData的userId。 ![]() 2) updateOne()方法返回结果,此结果包含一个属性,即 nModified。 此属性返回更新记录的计数。 因此,我们将使用此变量来检查帖子是否会成功更新。 如果它的值大于零,那么我们将返回旧的响应。 否则,我们将发送不同的响应,即 401 状态码,以表明用户无权执行此操作。 ![]() 现在,我们将保存所有文件并返回到我们的angular应用程序。 如果我们尝试从其他帐户更新Saakshi的帖子,则会收到“未授权”错误。 ![]() ![]() 3) 现在,我们将对删除帖子使用相同的逻辑。 我们将返回到路由器的delete()方法,并对 deleteOne() 执行相同的操作。 我们在JavaScript对象中添加了与在updateOne()中使用的相同的条件。 ![]() 4) 我们将简单地复制更新方法的结果处理,并将其粘贴到删除方法中,因为在这里,我们也会得到nModified属性,该属性存储将被删除的帖子的计数。 ![]() 我们保存所有文件并返回到我们的应用程序,以检查它是否有效。 ![]() 一切运行良好。 在本节中,我们将userId传递到前端,以便也可以在前端使用它。 下一话题将用户ID传递到前端 |
我们请求您订阅我们的新闻通讯以获取最新更新。