2013-07-02 4 views
7

Próbuję ustawić paszport po raz pierwszy i mam tylko jedną opcję logowania google. Zarejestrowałem się w google apis, więc mam całą tę konfigurację. kod referencyjny znajduje się poniżej, ale kiedy moja aplikacja wywołuje wywołanie '/auth/google/', po prostu nie powiedzie się bez odpowiedzi lub komunikatu o błędzie. Przełączam konfigurację na kilka sposobów bezskutecznie. Wymieniłem również passport.authenticate('google') z anonimową funkcją z console.log, aby sprawdzić, czy moja usługa sieciowa działa poprawnie i tak właśnie jest. Więc wiem, że dociera do passport.authenticate('google').Uwierzytelnianie Passport.js nie działa

// serialize session 
    passport.serializeUser(function (user, done) { 
     done(null, user.id); 
    }); 

    passport.deserializeUser(function (obj, done) { 
     done(null, obj); 
    }); 

     // use google strategy 
    passport.use(new googleStrategy({ 
     clientID: config.google.clientID, 
     clientSecret: config.google.clientSecret, 
     callbackURL: config.google.callbackURL, 
     scope: 'https://www.google.com/m8/feeds https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile' 
    }, 
    function(accessToken, refreshToken, profile, done) { 
    console.log(profile); 
    } 
)); 


    app.use(passport.initialize()); 
    app.use(passport.session()); 


    app.get('/auth/google', passport.authenticate('google')); 
    app.get('/auth/google/callback', passport.authenticate('google', { failureRedirect: '/', scope: 'https://www.google.com/m8/feeds' }), signin); 

EDIT: Oto moja prośba http używam kanciasty i ta funkcja jest związana z ng kliknij na przycisku.

$scope.signIn = function() { 
    $http({method: 'GET', url: '/auth/google'}). 
     success(function (data, status, headers, config) { 
      console.log('success'); 
     }). 
     error(function (data, status, headers, config) { 
      console.log(data); 
      console.log(status); 
      console.log(headers); 
      console.log(config); 
     }); 
}; 

dzienniki te nic powrócić

+0

Naprawdę nie mam komunikat o błędzie? Może być timeout? Jak to się nie udaje? – maxdec

+0

Nie mogłem złapać ani odzyskać niczego. Wygląda na to, że zawodzi, bez żadnego zwrotu. Może to źle skonfigurowane połączenie. Na wszelki wypadek dodam kod ajaxowy. –

Odpowiedz

3

Trzeba zadzwonić done() wewnątrz middleware dla GoogleStrategy

passport.use(new GoogleStrategy({ 
     ... 
    }, 
    function(accessToken, refreshToken, profile, done) { 
    console.log(profile); 

    // Add this 
    done(null, profile);//profile contains user information 
}); 

uznał ten here