1

この問題がフォーラムに何度も投稿されているのを見てきましたが、それらの解決策を試しても解決しませんでした。

PassportJS を使用して Twitter でのログインを許可する MEAN スタック アプリを構築しています。

angular.module('HomeCtrl', []).controller('HomeController', function($scope,$http) {

$scope.tagline = 'To the moon and back!';   
$scope.twit = function() {
    console.log("twitter button clicked");
    $http.get("/auth/twitter")
    .success(function (data) {
        console.log(data);
    })
    //$window.location.href = '/auth/twitter';
}});

サーバー内の私のroute.jsは

app.get('/auth/twitter', passport.authenticate('twitter', { scope : 'email' }));

Twitterがアプリにリダイレクトすると、CORSの問題が原因でサーバーのリダイレクトが機能しなくなりました。これは理解できます。これを修正するには

私は以下を試しました

app.all('/*', function (req, res, next) {
  res.header("Access-Control-Allow-Origin", "http://localhost:8080");
   res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header("Access-Control-Allow-Headers", "X-Requested-With, Content-Type");
  next();
});

それでもこれは機能しません。ウェブでもっと読んだ後、私の理解では、Twitterはheader-originを送信せず、リダイレクトであるため、node.jsサーバーは受信した応答を制御できず、ブラウザに戻すことができます。

この段階では、どのように進めればよいかわかりません。お知らせ下さい

コメントによると:これはツイッターコールバックの応答です

Request URL:https://api.twitter.com/oauth/authenticate?oauth_token=l8OKcAvqr3QLrlCroweGgByvvhXfSmIiqhvRgGqML6c
Request Headers
Provisional headers are shown
Accept:application/json, text/plain, */*
Origin:http://localhost:8080
Referer:http://localhost:8080/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
Query String Parametersview sourceview URL encoded
oauth_token:l8OKcAvqr3QLrlCroweGgByvvhXfSmIiqhvRgGqML6c
4

1 に答える 1