Wie schränkt man eine Route auf einen Admin-Benutzer in Meteor ein?

8

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%     
kurisukun 11.06.2013, 02:46
quelle

4 Antworten

8

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:

Routing-Funktion

Sie könnten die /admin Route wie folgt aussehen lassen:

%Vor%

Ich nehme an, Sie haben eine unauthorized Vorlage, die eine 403 Seite oder etwas Informatives darstellt.

Filter

Alternativ können Sie Ihre ursprüngliche /admin Route beibehalten und einen Filter hinzufügen:

%Vor%

und benutze es so:

%Vor%

Ich persönlich mag die Filteroption, weil sie wiederverwendbar ist und es etwas offensichtlicher ist, was vor sich geht.

    
David Weldon 11.06.2013, 03:29
quelle
2

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%     
hharnisc 13.02.2014 20:40
quelle
1

Verwenden Sie den Parameter and :

%Vor%     
gabrielhpugliese 11.06.2013 03:28
quelle
0

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.

    
Max Savin 29.09.2017 17:55
quelle

Tags und Links