Meteor.user () auf der Seite des Eisen-Router-Servers

8

Wie kann auf der serverseitigen Route überprüft werden, ob der Benutzer angemeldet ist?

Ich würde "vor" hinzufügen, aber Metor.user () funktioniert hier nicht.

Danke im Voraus.

ps. Ich habe gefunden. Wie bekomme ich Meteor.user ( ) auf der Server-Seite zurückgeben? , aber nicht auf Eisen-Router arbeiten

    
elbowz 26.11.2013, 14:19
quelle

2 Antworten

8

Ich fürchte, das ist nicht möglich. Ich nehme an, dass das Problem von der Tatsache herrührt, dass Sie versuchen, sich mit zwei verschiedenen Protokollen - sowohl wörtlich als auch logisch - mit dem Server zu verbinden, also gibt es keinen offensichtlichen Weg, diese beiden Aktionen zu verbinden.

Es gibt jedoch eine ziemlich einfache Lösung, die Ihren Bedürfnissen entspricht. Sie müssen ein einfaches System von Privilegientoken oder geheimen Schlüsseln oder wie immer Sie sie nennen, entwickeln. Erstellen Sie zuerst eine Servermethode

%Vor%

Dann können Sie es jetzt auf dem Client verwenden, um das secretKey zu erhalten, das an Ihre AJAX -Anforderung (oder etwas) angehängt wird, entweder in der Kopfzeile HTTP oder in der URL selbst. Keine Angst! Sie werden alle verschlüsselt, wenn Sie HTTPS verwenden.

Auf der Serverseite können Sie nun secretKey von der eingehenden Anfrage abrufen und prüfen, ob sie in der Secrets Sammlung vorhanden ist. Sie werden dann wissen, ob der Benutzer bestimmte Berechtigungen gewährt oder nicht. Vielleicht möchten Sie auch Ihre geheimen Schlüssel aus Sicherheitsgründen nach einiger Zeit aus der Sammlung entfernen.

    
Tomasz Lenarcik 27.11.2013, 00:49
quelle
3

Wenn Sie den anfordernden Meteor.user authentifizieren wollen, mache ich das momentan im Kontext von IronRouter.route (). Die Anforderung muss mit einer gültigen Benutzer-ID und einem Authentifizierungs-Token in der Kopfzeile erfolgen. Ich rufe diese Funktion innerhalb von Router.route () auf, was mir Zugriff auf this.user gibt:

%Vor%

Dieser Code wurde stark von RestStop und RestStop2 inspiriert. Es ist Teil eines Meteor-Pakets zum Schreiben von REST-APIs in Meteor 0.9.0+ (auf dem Iron Router). Sie können den vollständigen Quellcode hier auschecken:

Ссылка

    
kahmali 07.01.2015 22:57
quelle

Tags und Links