2011-05-16 85 views
0

後檢索錯誤的用戶,我得到CurrentUser從UserServiceUserService註銷

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

它工作時。但是當我註銷時,UserService仍然返回相同的電子郵件。

+0

這是在部署的應用程序還是在本地?您是否在使用Google帳戶進行登錄(或聯合登錄)?確保您已完全從Google註銷,例如去Gmail或其他谷歌服務,並確保你沒有登錄。 – planetjones 2011-05-16 09:43:07

+0

@planetjones,我將它部署在GAE上,並確保我從Google註銷。我使用特定網域(不是gmail.com)的Google帳戶。 – 2011-05-16 09:49:18

+0

只需清除瀏覽器cookie並嘗試。 – 2011-05-16 09:53:07

回答

2

假設你通過GAE的常規手段登錄,您的瀏覽器將結束兩個會話cookie - 一個用於谷歌和一個用於應用程序。

如果您還以常規方式註銷(從create_logout_url註銷的URL),那麼這兩個cookie都將被刪除。但是,如果用戶從您的應用瀏覽到某個其他Google服務並從那裏註銷Google,那麼您的應用的Cookie不會被刪除(至少在Firefox中不適用於我)。我不確定它甚至可以 - 一旦瀏覽器遠離您的應用程序,很可能它不會允許Google網站以任何方式觸摸您的應用程序的Cookie。

修復程序應該是,在您的應用程序中提供註銷鏈接,並讓用戶使用該鏈接註銷。如果你已經這樣做了,那麼我不知道問題是什麼......

+0

謝謝。我曾經通過在http://www.google.com/accounts/Logout上重定向來註銷用戶。實際上,我不想按照您的描述與Google進行登錄會話同步。我想我可以通過刪除一些cookie每個請求來實現這一點,但我希望有其他方便的方法。 – 2011-05-16 10:48:05

1

回答一切。看起來,雖然您可能已經註銷了Google服務,但您的瀏覽器仍然維護着Google服務的Cookie。這就是爲什麼它再次拋出相同的用戶電子郵件..

+0

謝謝,但我如何解決它? – 2011-05-16 10:08:20