Ich versuche Pass Authentifizierung mit Twitter zu arbeiten. Mein Setup ist wie folgt: Reagieren (mit Redux) Frontend (create-react-app), Knoten (mit Express) API. Beide laufen auf localhost (verschiedene Ports).
Benutzer geht an /login
und klickt auf eine Schaltfläche, die meldet sich die Versendungen:Kein 'Access-Control-Allow-Origin'-Header ist auf der angeforderten Ressource vorhanden. - React/Node API
export function login() {
return dispatch => {
return axios.get('/api/auth/twitter')
.then(() => {})
}
}
Die Route auf dem Server:
router.get('/twitter', passport.authenticate('twitter'));
Und die Route für den Rückruf:
router.get('/twitter/callback', passport.authenticate('twitter', {failureRedirect: '/login'}), loginSuccess);
loginSuccess
tut im Moment nichts.
Dies ist der vollständige Fehler erhalte ich:
XMLHttpRequest cannot load https://api.twitter.com/oauth/authenticate?oauth_token=fGVctgAAAAAA1y22AAABXah3t3o. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:3000' is therefore not allowed access.
Ich Proxying Anfragen aus dem Frontend reagieren (localhost: 3000): 8080 auf localhost.
Wenn ich auf die Registerkarte Netzwerk der Chrom devtools gehen und wählen Sie die Antwort von der twitter api es wie folgt aussieht:
Wenn jemand weiß, wie Pass-twitter-Authentifizierung erhalten mit dieser Art von Einrichtung zu arbeiten lass es mich wissen, bitte.
Siehe https: /. /stackoverflow.com/questions/35879943/twitter-api-authorization-fails-cors-preflight-in-browser/35898961#35898961 und siehe die Aussage "Das typische Muster ist, dass Anfragen an die Twitter-API eher im Backend als direkt passieren sagen wir aus einer browserbasierten App "unter https://twittercommunity.com/t/will-twitter-api-support-cors-headers-soon/28276/3 Ich schätze, dass die meisten sich damit beschäftigen, entweder durch benutzerdefinierte Verarbeitung in den serverseitigen Code für ihre Web-Apps schreiben oder e lse mit einer Bibliothek, die es für was auch immer serverseitige Laufzeit tut sie verwenden – sideshowbarker
No CORS Middleware, die Sie auf Ihrem eigenen Server installieren wird die Tatsache ändern, dass "https: // api.twitter.com/oauth/authenticate" Der Endpunkt, an den Sie eine Anfrage stellen, enthält nicht den Antwort-Control-Allow-Origin-Antwort-Header in seinen Antworten. – sideshowbarker