2017-03-25 6 views
1

Codierung einer Nachrichtenwebsite, ich versuche Autorisierung zu machen, so dass nur der Autor (der den Artikel gepostet hat) es bearbeiten und löschen kann (diese Schaltflächen erscheinen am Ende der Seite und sind für alle Benutzer sichtbar).Autorisierung in node.js

Aber dann gibt es bestimmte Nachrichten/Websites, die keine Login/Anmeldeoption haben. Zum Beispiel: http://www.denofgeek.com/us. Weil sie keine Authentifizierung haben, bedeutet das, dass sie keine Berechtigung haben? Wie können sie die Artikel bearbeiten/löschen, wenn die Einstellungen für die Autoren gleich sind wie für die anderen Benutzer?

Code:

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); 
     } 
    }) 
}) 

Wie soll ich über das Bearbeiten gehen/Löschen der Artikel, wenn ich will nicht Authentifizierung verwenden?

P.S: Ich kann natürlich die Edit und Delete Buttons entfernen, die auf der Seite erscheinen und PUT und DELETE Anfragen via Postman schicken, aber es ist offensichtlich eine schlechte Idee!

Antwort

1

Nachdem Sie die Website erwähnt haben, haben Sie eine für Benutzer und eine separate für den Admin, wo der Autor sich anmelden und Aktualisierungen vornehmen kann, neue Beiträge hinzufügen und einmal löschen.

Es ist nicht möglich, dass Sie ohne Authentifizierung einen bestimmten Benutzer bearbeiten/löschen können.

So sollten Sie tun, wie nur ein separates Panel für den Autor erstellen und eine Anmeldeseite für so einrichten, nur die autorisierte Person kann die Seite eingeben und dort können Sie die Funktionalität des Löschens/Aktualisieren implementieren, auch würde ich Ihnen raten Verwenden Sie die Autorisierung, damit jemand, der Ihre Apis kennenlernt, keine Änderungen vornehmen kann, bis er das Token dazu hat, können Sie diese jsonwebtoken verwenden, um die Autorisierung zu implementieren.

Hoffe, das hilft.

+0

Wie können verschiedene Einstellungen für Benutzer und Administratoren vorgenommen werden, wenn sie nicht einmal eine Anmelde-/Anmelde-Schaltfläche verwenden? Willst du sagen, dass sie eine andere Domain (wie admin.denofgeek.com), die nur für die Autoren ist? Gott ... ich weiß nicht einmal wo ich anfangen soll! Ich habe die Authentifizierung (über den Pass) eingerichtet, aber ich habe Probleme mit dem Autorisierungsteil! – eknoor4197

+0

Ja, es ist so, nur dass Sie keine andere Domain erstellen müssen, Sie können einfach eine URL wie [link] (http://www.denofgeek.com/admin) erstellen, wo Sie sich mit userName und Passwort authentifizieren können und danach erfolgreich Überprüfen Sie, ob Sie dem Autor die Bereiche anzeigen lassen, in denen er den Beitrag bearbeiten/löschen kann. –

+0

Wenn möglich, könntest du mich zu einem Chat-Raum auf SO einladen, damit ich dich fragen kann, wann immer ich auf dieser Admin-Interface-Sache feststecke? Kommentieren ist ein Schmerz. – eknoor4197