2017-12-06 4 views
0

Ich brauche eine <a href=""></a> in React Router, um Passport.js in meiner Anwendung für OAuthentication zu verwenden. Jedes Mal, wenn ich einen Anker-Tag erstellen und klicken Sie in React es geht nur auf eine leere Seite in React Router und ich weiß nicht einmal den Rückruf von meinem Node-Server auf dem Back-End mit all der Überprüfung von Google/Facebook/LinkedinWie zu verwenden <a> & href-Tag in React-Router

erhalten

Was ist ein nützlicher Weg, um einen href Tag in React-Router haben, so dass mein Backend es registrieren kann, mit den Rückrufen durch seinen api Strom schwimmen, und es dann an die richtigen Adresse sendet in React-Router?

Das Problem ist dies

The Problem of using axios.get() for OAuthentication with Passport.js

EDIT

In diesem Beitrag sie das gleiche Problem hat, die ich tue, und die Lösung war nur ein einfacher href-Tag, aber ich habe lautet die Reaktionen Router auf meiner Anwendung und ihre mögliche sie nicht, auch sie haben kein Beispiel

Previous post about Authentication with Passport.js with React front

EDIT

ich dieses Projekt von jQuery bewegte konzentriert zu Reagieren, Reaktion-Router und Redux so eine Mehrheit meines serverseitigen Knoten Code hat die Aktualisierung nicht brauchen, aber hier ist ther Teil meiner Routen, behandelt das OAuth mit Passport. Ich brauche nur meine Front, dies zu erreichen, lassen Sie es nicht sein Ding und dann zu mir zurückschicken

router.get('/linkedin', passport.authenticate('linkedin'), 
    function(req, res){ 
     console.log('nexted') 
    } 
); 

    router.get('/linkedin/callback', 
     passport.authenticate('linkedin', { failureRedirect: '/index' }), 
    function(req, res) { 
     console.log('here') 
     res.redirect('/professionals'); 
    }); 
+0

eine leere Seite im Reag-Router? Was erwarten Sie nach dem Klicken auf dieses href-Tag. – azium

+0

Ich möchte, dass es in einer GET-Anfrage an den Server geht und in diesem Fluss behandelt und herumgeworfen wird, damit ich über pass.js den entsprechenden Callback und OAuthentication erhalten kann. Ich habe meinen Beitrag bearbeitet, um gängiges Problem zu zeigen, aber der Unterschied ist thwy hatte nicht Router reagieren und ich tun – KellysOnTop23

+1

Reagieren-Router verhindert nicht, dass Sie das tun. klingt wie die route auf ihrem server (express?), mit der der oauth link nicht abfängt oder du ihn nicht richtig eingerichtet hast. Kannst du das Express-Setup für den Href-Link und deine React-Anwendung posten? – azium

Antwort

1

ich in den Kommentaren bemerkt, dass Sie CORS Probleme erwähnen, die, wenn ich Recht habe ich glaube, Sie verwenden die Autorisierung Code gewähren OAuth Flow, ich hatte das gleiche Problem mit GitHub, wenn ich mein SPA und mein Backend auf verschiedenen Servern hatte. Wenn dies der Fall ist, dienen die statischen Dateien des SPA über den Backend-Server. Wenn Sie dies tun, sollten Sie den folgenden Code als letzte Route verwenden, damit React Router funktioniert. Sie können eine Repo finden, wo ich die gleiche here tat

app.get('*', (req, res) => { 
    res.sendFile(path.join(__dirname + '/client/index.html')); 
}); 

Hinweis: Wenn Sie diese Sie die implizite Gewährung OAuth Flow verwenden können nicht tun wollen, und die Authentifizierung in der SPA machen.

+0

ich muss nur versuchte deinen Vorschlag aber immer noch kein Glück. Ich habe einen '302' für meinen http-get von meinem Server bekommen, aber es folgte nicht dem normalen Passfluss. Ich denke, der beste Weg hier ist, den React-Router aufzugeben und ein normales href-Tag zu verwenden. – KellysOnTop23

+0

Status 302 wird für die Weiterleitung verwendet, wann bekommst du es? Ich habe es nicht verstanden. Ist das 'console.log ('hier') 'gedruckt? –

+0

die Konsole.log' wird nie gedruckt. Ich bekomme den 302-Status, wenn ich versuche, mit axios.get auf die Seite zuzugreifen. Ich denke, ich werde nur ReactRouter aus meiner Anwendung entfernen oder einfach nach dem Pass Teil hinzufügen, um die Anmeldung zu ermöglichen, weil Social Media Login für meine Anwendung wichtig ist – KellysOnTop23

Verwandte Themen