2017-02-10 4 views
1

Der folgende Express-Code gibt ein Token nach der Umleitung eines Benutzers an Facebook für die Anmeldung und dann Erstellen eines Benutzers, Speichern in meiner Datenbank und Weiterleiten an/auth/facebook/Callback. Wie hole ich dieses Token über Callbacks/Versprechungen/Observables /? in meinem Frontend-Client und speichern Sie es in angular 2 Authentifizierungs-Service als lokale Fenstervariable im Benutzer-Browser für die Verwendung während der Sitzung?Angular 2-Authentifizierung - Speichern von Passjs-Token zur Verwendung

userRouter.get('/auth/facebook/callback', function(req,res,next){ 
    passport.authenticate('facebook', function(err, user, info) {   
    if (err) { 
     return next(err); 
    } 
    if (!user) { 
     return res.status(401).json({ 
     err: info 
     }); 
    } 
    req.logIn(user, function(err) { 
     if (err) { 
     return res.status(500).json({ 
      err: 'Login failed' 
     }); 
     } 
     var token = Verify.getToken(user); 
     res.status(200).json({ 
     status: 'Login successful', 
     success: true, 
     token: token 
     }); 
    }); 
    })(req,res,next); 
}); 

Antwort

0

Wenn nicht ngrx store verwenden, empfehle ich einfach localStorage.

ein:

localStorage.setItem('token', this.token); 

erhalten zu:

localStorage.getItem('token'); 

löschen:

localStorage.removeItem('token'); 

Dies sollte Ihnen den Einstieg:

login(something: string): Observable<boolean> { 
    return this.http 
     .post(this.authUrl, JSON.stringify({ }), { headers: this.headers }) 
     .map((response: Response) => { 
      let responseObject = response.json();   
      let token = responseObject.token;  
      localStorage.setItem('token', JSON.stringify({ token: this.token})); 
      return true; 
     }); 
    } 

Wenn Sie JSON-Objekt speichern in localstorage wie in meinem Beispiel, müssen Sie es analysieren:

JSON.parse(localStorage.getItem('token')); 
+0

Hallo Frecia, ist dies sehr nützlich, aber ich weiß nicht, wie eigentlich das Token in meine Winkel 2 App zu erhalten. localhost: 3000/users/auth/callback? = .... ist eine weiße Seite mit einem json-Objekt, das den Token und die Erfolgsmeldung enthält, die von paßaljs im Backend zurückgegeben werden. Wie leite ich dieses Json-Objekt in meine eckige App um? – seanEd

+0

Ich brauche einen Rückruf oder ein Versprechen oder etwas, weil sie sich über Facebook einloggen und dann weitergeleitet werden müssen. – seanEd

+0

etwas wie das: login (Daten) .then ((Ergebnis) {console.log (Ergebnis)}) sollte Benutzerdaten halten – FRECIA

Verwandte Themen