Wie kann ich einen Parameter über meine pass.js-Kette übergeben?

9

Ich benutze pass.js, um Benutzer zu authentifizieren. Ich möchte in der Lage sein, einen vom Benutzer gesammelten Benutzernamen zu übergeben, der das Ende des Authentifizierungsprozesses erreicht, so dass ich den Benutzernamen speichern kann, wenn ich den Benutzer erstelle (falls er noch nicht existiert). Ich habe es versucht:

%Vor%

Der Aufruf von / auth / google gibt den Benutzernamen aus, aber der Callback druckt undefiniert. Selbst wenn ich den Benutzernamen zum Rückruf bekommen könnte, bin ich mir immer noch nicht sicher, wie ich es zur Google-Strategie bekommen würde. Müsste ich dann meine eigene Strategie erstellen, damit das funktioniert?

    
Mike Pateras 02.12.2012, 14:29
quelle

2 Antworten

7

Sie können ein state Objekt an pass.authenticate übergeben, so:

%Vor%

Sie können auf den Status über req.query.state zugreifen.

Der Benutzername sollte eine Zeichenfolge und kein Objekt sein. Wenn Sie ein Objekt in diesem Zustand speichern möchten, rufen Sie vorher JSON.stringify auf und analysieren Sie es im Callback.

    
Ruben Cordeiro 08.05.2014 23:03
quelle
1

Für jeden, der OpenID verwendet, scheint req.query von den OpenId-Abfrageparametern überschrieben zu werden und kann daher nicht direkt übergeben werden. Sie können Variablen jedoch an req.session anhängen.

%Vor%

und vergessen Sie nicht, das Flag passReqToCallback in die Strategieoptionen einzufügen:

%Vor%     
Kilizo 13.01.2017 14:10
quelle

Tags und Links