2015-05-01 48 views
1

我使用Play2!斯卡拉2.3.8。 我想爲我添加一個默認的csrfToken,但我知道如何。我試了一下這個例子 https://www.playframework.com/documentation/2.3.8/ScalaCsrf如何正確地使用csrf令牌擴展我的表單?

我創建了一個自定義的全局對象和我伸出我的表格:

@helper.form(action = routes.Books.submitBook) { 
@helper.CSRF.formField 

,但我得到這個錯誤我已經發送後的形式:

could not find implicit value for parameter token: play.filters.csrf.CSRF.Token 

我知道CSRF.formField需要一個參數,但這個例子不包含。

回答

3

文檔狀態的following

的形式輔助方法都需要一個隱含令牌或請求在範圍可用。這通常會通過向您的模板添加隱式RequestHeader參數(如果它尚未包含)來提供。

爲了做到這一點,你必須改變你的模板的參數列表如下所示:

@(<your parameters>)(implicit request: RequestHeader) 
+0

謝謝,我認爲這是非常棘手:) – bitli

+0

'(隱式令牌:play.filters。 csrf.CSRF.Token)'也可以工作,但很可能'request:RequestHeader'是最好的方法。 – Techmag