Als iOS-Entwickler bin ich vor allem sehr neu bei webdev. Ich schaue Meteor an und habe ein paar Fragen zum Routing - ich entschuldige mich, wenn sie sehr einfach sind.
Ich verwende das Meteor Router-Paket, um Routen zu erstellen, aber ich möchte einige Seiten nur für den Admin-Benutzer haben.
%Vor%Ich habe also eine einfache Routeneinstellung wie oben, aber ich bin mir nicht sicher, wie ich den Zugriff auf die Route / admin beschränken soll.
Ist es so einfach wie so etwas? Was wäre eine gute Möglichkeit, die Route auf die / admin-Seite zu beschränken und eine Warnung anzuzeigen oder sie sogar zurück zur / Seite zu leiten?
Danke!
client.html
%Vor%client.js
%Vor%Der beste Weg, den Zugriff auf eine Route einzuschränken, ist der Router selbst (anstatt das Problem auf den Controller zu schieben). Sie haben ein paar Möglichkeiten, wie Sie das tun:
Sie könnten die /admin
Route wie folgt aussehen lassen:
Ich nehme an, Sie haben eine unauthorized
Vorlage, die eine 403
Seite oder etwas Informatives darstellt.
Alternativ können Sie Ihre ursprüngliche /admin
Route beibehalten und einen Filter hinzufügen:
und benutze es so:
%Vor%Ich persönlich mag die Filteroption, weil sie wiederverwendbar ist und es etwas offensichtlicher ist, was vor sich geht.
Eine andere Lösung besteht darin, das Paket Rollen zu verwenden und sicherzustellen, dass der Benutzer die Rolle "admin" hat vor dem Servieren von Daten.
%Vor%Dann können Sie mit einer netten Syntax nach Rollen suchen:
%Vor%Roles ist in das Meteor Account-System integriert und spielt gut mit den meisten Account-Paketen.
Wenn Sie Konten verwalten möchten (Erstellen / Löschen von Rollen und Hinzufügen / Entfernen von Rollen von einem bestimmten Benutzer) Ich habe das Paket erstellt Konten-Admin-Benutzeroberfläche . Die README enthält einen Schnellstart und einige Hinweise, wie Sie diese mit anderen Routing-Paketen integrieren können.
%Vor%Jeder hier hat großartige Punkte zum Schutz eines Admin-Panels auf Router-Ebene gemacht. Eine andere Möglichkeit ist, den Router alle zusammen zu überspringen. Ich habe das kürzlich mit Meteor Candy gemacht, einem Drop-in-Admin-Paket für Meteor.
Die Idee ist, dass Sie ein Reactive-Dict erstellen können, um den Status der Admin-Schnittstelle zu halten. Wenn Sie es in ein Paket einfügen, können Sie sicherstellen, dass es niemals mit Ihrem Anwendungscode kollidiert. Und mit der neuen Funktion für dynamische Imports können Sie sie praktisch vom Client fernhalten, bis sie benötigt wird.
So könnte das funktionieren:
%Vor%Darüber hinaus müssen Sie nur die Gelegenheit definieren, die "show" auf einen Wahrheitswert setzt.
Tags und Links meteor