2017-03-25 56 views
1

對新聞網站進行編碼,我試圖進行授權,以便只有作者(發佈文章的人)能夠編輯和刪除它(這些按鈕出現在頁面的底部,並且是所有用戶都可以看到)。node.js中的授權

但是,然後有某些新聞/網站沒有登錄/註冊選項。例如: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:我當然可以刪除出現在頁面上的編輯和刪除按鈕,並通過郵遞員發送PUT和DELETE請求,但這顯然是一個壞主意!

回答

1

雖然去你提到的網站有一個爲用戶和一個是管理員分開作者可以登錄和更新添加新的職位,刪除舊的一次。

這是不可能的,沒有任何身份驗證,你可以編輯/刪除特定用戶。

所以你應該這樣做,就像爲作者創建一個單獨的面板併爲其設置一個登錄頁面,這樣只有授權人員才能進入該頁面,並且在那裏你可以實現刪除/更新的功能,即使我會建議你使用授權,所以如果任何人知道您的apis,他們不能編輯,直到他們有令牌,你可以使用此jsonwebtoken來實現授權。

希望這會有所幫助。

+0

如果用戶和管理員甚至沒有登錄/註冊按鈕,他們如何設置不同的用戶和管理員?你的意思是說他們可能是另一個域名(如admin.denofgeek.com),這是僅供作者使用的嗎?上帝......我甚至不知道從哪裏開始!我有認證(通過護照)設置,但我在授權部分遇到問題! – eknoor4197

+0

是的,就像那樣,只有你不需要創建另一個域名,你可以創建一個類似於[link](http://www.denofgeek.com/admin)的URL,你可以使用userName和password進行身份驗證,並且在成功檢查你可以讓作者看到他們可以編輯/刪除帖子的部分。 –

+0

如果可能的話,你可以邀請我到SO上的聊天室,以便我可以問你什麼時候我覺得卡在這個管理界面的東西?評論是一個痛苦。 – eknoor4197