URL:
http://eggjs.org/zh-cn/core/security.html
Una manera:
En el controlador a través del paso de parámetros plantilla
/ ** * Método 1: parámetros de regulación aprobadas por la plantilla * this.ctx.csrf los usuarios acceder a esta página cuando se genera una clave * / el ctx.render Await ( 'Inicio', { CSRF: this.ctx.csrf });
Segunda manera:
Mediante la creación de middleware, establecer las variables globales de plantilla
app / middleware / auth.js
/ ** * cheque forma sincronización CSRF * / module.exports = (Opciones, Aplicación) => { devolver la función asincrónica la autenticación (CTX, Siguiente) { // establecer la variable global plantilla ctx.state.csrf = ctx.csrf; A continuación, el await (); } }
config / config.default.js
// Añadir dispuesta intermedia config.middleware = [ 'auth'];
controlador utilizado
/ ** * La segunda manera: mediante la creación de middleware, el establecimiento de la plantilla variable global * config.middleware = [auth ']; * / el ctx.render Await (' Home ');
plantilla:
app / view / home.html
<! DOCTYPE html> <html lang = "en"> <head> <meta charset = "UTF-8"> <meta name = "viewport" content = "width = dispositivo de ancho, inicial escala = 1,0"> <首页título </ title>> </ head> <body> <form action = "? _csrf = <% =% csrf / add>" method = "POST"> <! -通过隐藏的表单域传值- > <! - <input type = "hidden" name = "_ csrf" value = "<% =%> csrf" /> -> 用户名: <input type = nombre de "texto" = "nombre de usuario" /> < br /> 密码: <input type = nombre "contraseña" = "contraseña" /> <br /> <tipo botón = "submit">提交</ botón> </ form> </ body> </ html>
.