2017-02-21 3 views
0

이 GET 엔드 ​​포인트를 가지고 있지만 호출 방법이 확실하지 않습니다. 나는 항상 잘못된 csrf 토큰을 얻는다. 내 POST 끝점이 잘 작동합니다. 나는 어떤 문제도 없다. GET 엔드 ​​포인트에만 문제가 있습니다.csurf 모듈을 사용하는 GET 메소드의 CSRF 보호

const csrf = require('csurf'); 

router.route('/sessioncount') 
    .get(csrf({ ignoreMethods: [] }), (req, res, next) => { 
    sess = req.session; 
    if (sess.authenticated) { 
     if (sess.views) { 
     sess.views++; 
     res.setHeader('Content-Type', 'text/html'); 
     res.write('<p>Session views: ' + sess.views + '</p>'); 
     res.end(); 
     } else { 
     sess.views = 1; 
     res.end('Welcome, you are logged in!'); 
     } 
    } else { 
     res.setHeader('Content-Type', 'text/html'); 
     res.write('<p>You are not allowed to view this page. Please <a href="/api/form">log in</a></p>'); 
     res.end(); 
    } 
    }) 

나는 이런 식으로 전화 만 해요 내가 추측하고있어 만

http://localhost:31337/api/sessioncount?csrf=qudszjrT-mQ5uu4qXrQXI7C_NJYlXXUIdKB0 
http://localhost:31337/api/sessioncount?_csrf=qudszjrT-mQ5uu4qXrQXI7C_NJYlXXUIdKB0 
http://localhost:31337/api/sessioncount?csrfToken=qudszjrT-mQ5uu4qXrQXI7C_NJYlXXUIdKB0 

답변

0

나는이

// const csrfProtection = csrf({ cookie: true }); 
const csrfProtection = csrf(); 
을 변경하여 작업을 얻었다