编辑新闻网站时,我试图进行授权,以便只有作者(发布文章的人)能够编辑和删除它(这些按钮显示在页面底部,对所有人都可见用户)。
但是有些新闻/网站没有登录/注册选项。例如:http://www.denofgeek.com/us。 因为他们没有身份验证,这是否意味着他们没有授权? 如果作者的设置与其他用户相同,他们如何编辑/删除文章?
代码:
app.get("/blog/:id/:title/edit", function(req,res) {
Blog.findById(req.params.id, function(err, foundBlog) {
if(err) {
res.redirect("/blog");
} else {
res.render("editBlog", {blog : foundBlog});
}
})
})
//UPDATE BLOG
app.put("/blog/:id/:title", function(req,res) {
req.body.blog.body = req.sanitize(req.body.blog.body);
Blog.findByIdAndUpdate(req.params.id, req.body.blog,{new: true}, function(err,updatedBlog) {
if(err) {
res.redirect("/blog");
} else {
res.redirect("/blog/" + req.params.id + "/" + req.params.title);
}
})
})
如果我不想使用身份验证,我应该如何编辑/删除文章?
P.S:当然,我可以删除页面上出现的编辑和删除按钮,并通过邮递员发送PUT和DELETE请求,但这显然是个坏主意!
答案 0 :(得分:1)
在浏览过网站之后,你提到了一个用户和一个用于管理员的网站,作者可以登录并进行更新添加新帖子并删除旧帖子。
如果没有任何身份验证,您就无法对特定用户进行编辑/删除。
所以你应该这样做,就像为作者创建一个单独的面板并设置一个登录页面,这样只有授权人才能进入页面,你可以实现删除/更新的功能,即使我建议你使用授权因此,如果有人了解您的api,他们无法进行编辑,直到他们有令牌,您可以使用此jsonwebtoken来实施授权。
希望这会有所帮助。