2013-05-19 6 views
5

여권에 Twitter 인증이 있습니다. 현명한 로그인이면됩니다. 나는이 코드를 가지고있다passport.js로 재 로그인 한 사용자 twitter login

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

그래서 사용자가 이미 트위터를 사용하여 내 사이트에 로그인 한 경우 그냥 리디렉션됩니다 (아마 결국 메시지를 보냅니다). 일단 그들이 사이트에서 로그 아웃하고 트위터로 다시 로그인하면 다시 트위터 승인 응용 프로그램 페이지로 이동합니다. 어느 쪽을해서는 안되는가. 다른 웹 사이트를 볼 때 앱을 다시 승인 해달라고 요청하지 않습니다. 내 트위터 프로필의 승인 된 응용 프로그램 섹션을 보면 개발중인 응용 프로그램을 볼 수 있습니다.

내 신청서에 이미 승인을 요청하는 이유는 무엇입니까? 이것을 어떻게 변경할 수 있습니까 (토큰과 token_secret를 db로 저장하고 있습니까?). 도와 주셔서 감사합니다.

답변

6

최근 개발 시스템에서 동일한 문제가 발생했지만 생산에는 문제가있었습니다.

나를위한 문제는 트위터의 응용 프로그램 설정으로 거슬러 올라갑니다. Twitter Dev 사이트에 가서 DEV 및 PROD 시스템에 대해 선택한 항목을 신중하게 비교하기 시작하면서 내 응용 프로그램의 설정 탭에서 "이 응용 프로그램을 사용하여 Twitter에 로그인하는 것을 허용합니다. "체크 박스는 이 아니며 DEV에 대해이 아니지만 은 내 PROD 시스템에 대해입니다.

응용 프로그램 설정 탭에있는 체크 박스 아래에있는 작은 인쇄는 말한다 :

언제 응용 프로그램이 "트위터에 로그인"할 수 있습니다 사용 가능. 사용할 때 응용 프로그램이/OAuth를/ authorize vs authenticate의 차이는 용어로 명확하지 않다

권한을 부여하는 대신에 사용자를 리디렉션합니다/OAuth를/인증하고 그것에 어떤 요청을 사용할 수 있지만, 필요 승인하지 않습니다 인증하는 동안 매번 확인은 사용자의 선택을 "기억"합니다.

이 단일 변경을 수행 한 후 내 DEV 시스템은 트위터를 통해 로그인을 테스트 할 때마다 승인 관련 확인을 요청했습니다 ...

+0

좋은 사람. 도와 주셔서 감사합니다! –

관련 문제