看起来您可以设置一个操作来生成csrf令牌(请参见
docs
):
如果不使用csrf过滤器,还应该注入csrfaddtoken和csrf check操作包装器,以强制对特定操作添加令牌或csrf检查。否则令牌将不可用。
import play.api.mvc._
import play.api.mvc.Results._
import play.filters.csrf._
import play.filters.csrf.CSRF.Token
class CSRFController(components: ControllerComponents, addToken: CSRFAddToken, checkToken: CSRFCheck) extends AbstractController(components) {
def getToken = addToken(Action { implicit request =>
val Token(name, value) = CSRF.getToken.get
Ok(s"$name=$value")
})
}
把这个传给反应表:
<input type="hidden" name="csrfToken" value="1234567890abcdef"/>
(或者直接添加到post请求中。)