2016-05-29 38 views
2

我正在尋找一種簡單的方法來設置CSRF令牌並在每個POST/PUT/...請求中檢查它。KeystoneJS自己的頁面上的CSRF

AdminUI中已經有一種機制。這可以用在「正常」的網頁上嗎?

我知道keystone.security.csrf.middleware.initkeystone.security.csrf.middleware.validate函數。但是,最好的地方叫他們在哪裏?

非常感謝提前! 丹尼爾

編輯: 我試圖在我的路線文件中使用

keystone.pre('routes', keystone.security.csrf.middleware.init); keystone.pre('routes', keystone.security.csrf.middleware.validate);

。令牌在我的cookie中設置。當我請求服務器時,cookie也被傳輸。 但驗證方法告訴我:「不匹配標記」。也許我有一個概念誤解。我認爲,這可以開箱即用。我錯過了什麼?

編輯2: 我將添加令牌到我的表單。我錯過了這一步......

回答

1

你可以把它作爲一個普通的中間件,只需在你的路由/ index.js文件中定義它:

keystone.pre('routes', keystone.security.csrf.middleware.init); 
+0

這是一個很好的keystonejs路。是否有Keystone預設和設置方法的文檔?我想知道驗證方法的最佳位置。 – DaTebe

+0

如果你能看看我編輯過的問題,那將會很好。也許你對我有暗示?如果沒有,沒問題。你基本上指出了我正確的方向,我很快就會接受你的回答。 – DaTebe

+0

當您發出POST請求時,如果您嘗試登錄,則需要傳遞電子郵件,密碼和_csrf參數 –