我很難將我已閱讀過的主題的各個主題拼湊在一起,所以我很想知道在我走得太遠之前我是否在正確的軌道上。我正在嘗試使用會話和Cookie等進行持久登錄。在這一點上,我覺得自己已經掌握了登錄順序,現在我只有一個用戶數據庫,但是我會盡量在以後處理OAuth。在GAE/J中使用會話
登錄:
- 用戶輸入憑據
- Creds被異步發送到服務器(最好是通過SSL,最終)
- 密碼不被存儲,只有哈希保持
- 如果creds都OK ,服務器將
this.getThreadLocalRequest().getSession().getId()
的值發送回 - 回調方法將sessionID保存在cookie中並相應地修改用戶界面
- (註銷方法清除cookie並調用
this.getThreadLocalRequest().getSession().invalidate()
)
時,我希望用戶能夠回來,拿起他們離開的地方,而無需重新登錄我迷路。我得到的SessionID回從cookie(如果有的話),然後我需要問服務器驗證它是有效的。是否有一個方法需要一個會話ID並返回它是否是一個有效的會話?或者我不知何故告訴當前會話使用該ID?
最終目標是我希望將會話ID包含在RPC調用中,該調用應該僅限於登錄用戶,並且服務器端方法將在運行之前驗證由RPC接收的sid。我不必保留一個有效的sid列表,對吧?這已經被GAE處理(是的,我有<sessions-enabled>
集)
我已經看到了這個代碼,但我想我沒有明白它的意思。 .getSession()告訴我會話ID,我可以存儲它。但是當我恢復會話時,我不需要設置會話ID嗎? – ASTX813 2011-03-30 02:42:08
你是什麼意思*我正在恢復會議*? – systempuntoout 2011-03-30 08:56:42
登錄後,做你的事情,關閉瀏覽器,稍後重新打開瀏覽器,仍然登錄。想通過保存JSESSIONID cookie到期,我覆蓋了瀏覽器關閉時即將過期的cookie。 – ASTX813 2011-04-01 01:44:57