2014-05-25 24 views
0

我已經實現了一個簡單的認證系統,因爲它在劇本的文檔中有所描述。話雖如此,沒有提及記住我的功能和如何實現它。在互聯網上搜索沒有給我任何相關的結果。記住我功能 - 最簡單的方法

我想要的是一個簡單的這樣做。我確實不需要任何插件或庫。我該怎麼做呢?

更新:

addForm.bindFromRequest.fold(
    failure => BadRequest(views.html.session add failure), 
    success => Redirect(routes.Account.index()) withSession "email" -> success._1 

) 
+3

[Cookies?](http://www.playframework.com/documentation/) 2.4.x/ScalaSessionFlash) – ggovan

+0

@ggovan,我該如何設置cookie到期的時間? –

+0

當您創建或複製cookie時,請設置['maxAge'](http://www.playframework.com/documentation/2.3.x/api/scala/index.html#play.api.mvc.Cookie)。 – ggovan

回答

-1

Play documentation

沒有爲會話沒有技術暫停。它在用戶關閉Web瀏覽器時到期。

這可以conf/application.conf通過設置將覆蓋:

session.maxAge=.... 

不可能覆蓋此在每個會話的基礎上。 這適用於該應用程序所使用的所有會話如圖the source.


另一種方法是使用Cookie。要在您的示例中使用cookie(但可以選擇設置maxAge),您可以執行以下操作:

def signText(key: String, value: String): String = { 
    val text = key + "=" + value 
    Crypto.sign(text) + "-" + text 
} 

val maxAge: Int = ??? 

addForm.bindFromRequest.fold(
    failure => BadRequest(views.html.session add failure), 
    success => Redirect(routes.Account.index()) withCookies Cookie("PLAY_SESSION",sign("email",success._1),maxAge) 
) 
+0

它會像'withSession'email一樣工作 - > success._1'嗎? –

+0

_它的工作原理是什麼?_呃,不,這就是要點;會議不能做你想讓他們在這裏。 Cookie以與會話非常相似的方式使用(會話是一種cookie)。查看有關Cookie和會話的文檔,然後進行實驗。 – ggovan

+0

我知道他們是如何工作的。我的意思是,你的代碼和我的代碼之間唯一的區別是你的代碼將在'maxAge'中過期,而我的用戶關閉瀏覽器之後呢? –