2013-05-19 16 views
5

W paszporcie mam uwierzytelnianie na Twitterze. Wszystko jest w porządku z logowaniem. Mam ten kodponownie zaloguj użytkownika z passport.js twitter zaloguj się

app.get('/auth/twitter', function (req, res) { 
    if (req.user) { 
     return res.redirect('/'); 
    } 
    return passport.authenticate('twitter')(req, res); 
}); 

Więc jeśli użytkownik jest już zalogowany do mojej strony z Twittera po prostu przekierowuje z powrotem (prawdopodobnie dać wiadomość ewentualnie). Gdy wylogują się z witryny i klikną ponownie na login z twitter, ponownie przejdą na stronę autoryzacji aplikacji Twitter. Którego nie powinno. Kiedy patrzę na inne strony internetowe, nigdy nie prosi mnie o ponowną autoryzację aplikacji. Jeśli spojrzę w sekcję autoryzowanych aplikacji mojego profilu twitter, widzę, że twoja aplikacja się rozwija.

Dlaczego moja aplikacja nadal prosi o autoryzację, gdy już ją podaję? Jak mogę to zmienić (przechowuję token i token_secret w db)? Dzięki za pomoc.

Odpowiedz

6

Niedawno miałem ten sam problem w moim systemie programistycznym, ale nie w produkcji.

Problem dla mnie spowodował powrót do ustawień aplikacji na Twitterze. Kiedy poszedłem na stronę Twitter Dev i zacząłem ostrożnie porównywać selekcje wybrane dla moich systemów DEV i PROD, zauważyłem różnicę na karcie Ustawienia dla Moich aplikacji, w której zaznaczono pole wyboru "Zezwalaj tej aplikacji na logowanie się za pomocą Twittera "pole wyboru było nie wybrane dla mojego DEV, ale było dla mojego systemu PROD.

Malutka-print pod pole wyboru na karcie Ustawienia aplikacji mówi:

Gdy włączona aplikacja może być używana do „Zaloguj się z Twitter”. Po wyłączeniu aplikacji nie będą mogli używać/OAuth/uwierzytelniania i każdy wniosek będzie do niej zamiast przekierować użytkownika do/OAuth/autoryzować

Różnica między authorize vs authenticate nie jest jasne, o terminologii, ale wymaga autoryzacji potwierdzenie za każdym razem, gdy uwierzytelnienie "pamięta" wybór użytkownika.

Po dokonaniu tego pojedynczą zmianę, mój system DEV zatrzymał mnie z prośbą o potwierdzenie związane autoryzować-za każdym razem testowałem zalogowaniu się za pośrednictwem Twittera ...

+0

miły człowiek. Dzięki za pomoc! –