2011-05-16 7 views
0

나는 UserService에서 CurrentUser를 얻는다.UserService가 로그 아웃 후 잘못된 사용자를 검색 함

 UserServiceFactory.getUserService().getCurrentUser().getEmail() 

그것은 작동한다. 하지만 로그 아웃 할 때 UserService는 여전히 동일한 이메일을 반환합니다.

+0

배포 된 앱입니까, 아니면 로컬입니까? 로그인 (또는 페더레이션 된 로그인)에 Google 계정을 사용하고 있습니까? 예를 들어 Google에서 완전히 로그 아웃했는지 확인하십시오. Gmail 또는 일부 다른 Google 서비스로 이동하여 로그인하지 않았는지 확인하십시오. – planetjones

+0

@ planetjones, GAE에 배포하고 Google에서 로그 아웃했는지 확인했습니다. 특정 도메인 (gmail.com 아님)의 Google 계정을 사용합니다. –

+0

브라우저 쿠키를 지우고 시도하십시오. –

답변

2

GAE에 대한 일반적인 방법으로 로그인한다고 가정하면 브라우저에 2 개의 세션 쿠키가 있습니다. 하나는 Google 용이고 다른 하나는 응용 프로그램 용입니다.

일반적인 방법으로 로그 아웃하면 (create_logout_url의 로그 아웃 URL) 두 쿠키가 모두 삭제됩니다.

그러나 사용자가 내 앱을 다른 Google 서비스로 탐색하고 거기에서 Google로 로그 아웃하면 앱의 쿠키가 삭제되지 않습니다 (적어도 Firefox에서는 해당되지 않습니다). 브라우저가 앱에서 벗어나면 Google 사이트가 앱의 쿠키를 어떤 식 으로든 만지는 것을 허용하지 않을 가능성이 있습니다.

수정 은 앱에 로그 아웃 링크를 제공하고 사용자가 로그 아웃 할 수 있도록이어야합니다. 이미 그 일을하고 있다면 문제가 무엇인지 알 수 없습니다.

+0

감사합니다. http://www.google.com/accounts/Logout에서 리디렉션하여 사용자를 로그 아웃했습니다. 사실, 설명대로 Google과의 로그인 세션을 동기화하지 않을 것입니다. 각 요청마다 일부 쿠키를 삭제하여 구현할 수 있다고 생각하지만 다른 편리한 방법이 있기를 바랍니다. –

1

모든 답변이 있습니다. 이미 Google 서비스에서 로그 아웃했을지라도 귀하의 브라우저는 여전히 Google 서비스를위한 쿠키를 유지하고있는 것으로 보입니다. 그것이 동일한 사용자 이메일을 다시 던지는 이유입니다.

+0

고마워,하지만 어떻게 고칠 수 있니? –

관련 문제