2013-09-24 45 views
2

據我所知,使用谷歌應用程序引擎提供的用戶服務,然後cookie會自動在後臺創建,我永遠不會處理它們。但是,對於我的特定項目,我需要創建一個自定義用戶數據庫 - 如何知道用戶已登錄或退出?我需要爲用戶瀏覽器等創建Cookie嗎?如何在GAE java中爲自定義用戶數據庫創建cookie?

乾杯, 羅布

回答

3

不,你不知道。所有你需要做的是使會話,加入

<sessions-enabled>true</sessions-enabled> 

appengine-web.xml文件。 See documentation.

本質上,GAE是一個servlet容器。因此,您可以使用任何標準Java Servlet容器所具有的幾乎所有機制。會議是這些機制之一。

所以,你會做什麼,是這樣的:

  1. 呼叫request.getSession(true)以獲取當前會話,或者建立一個新的,如果尚未完成,還沒有。
  2. 做一些類似session.getAttribute("userId")。請注意,「userId」只是一個例子,它本質上是一個字符串對象映射,您可以在其中存儲幾乎任何東西。
  3. 如果上面的調用返回null,它還沒有被設置,所以用戶還沒有登錄。讓他登錄:
    • 獲取用戶名和密碼,解決數據存儲,做session.setAttribute("userId", user.getId())
    • 由於會話屬性「用戶id」現在設置,用戶登錄
  4. 如果以上。調用返回一個id,您可以在數據存儲中解析它以獲取當前登錄的用戶。

試一試!這真是一件輕而易舉的事,一切都爲你完成,無需處理餅乾,會話令牌或任何你自己。

相關問題