2012-05-17 4 views
0

이것은 본질적으로 여기에서 계속됩니다. Nodejs Passport display username.ExpressJS/PassportJS/Jade 응용 프로그램에서 JavaScript에 변수 전달

app.get('/hello', function(req, res) { 
    res.render('index.jade', { name: req.user.username }); 
}); 

그래서 사용자 PassportJS 통해 로그인 한 req.user.username의 값으로 대체 될 몸체에 #{name} 포함 index.jade로 진행한다.

질문 : index.jade의 JavaScript에 req.user.username 값을 사용할 수 있습니까? 그 값을 변수에 할당하려고 시도했지만 작동하지 않습니다. 내가 값으로 #{name}와 숨겨진 입력을 갖는 트릭을 사용하고

:

input(type='hidden', id='variableName', value='#{name}') 

그런 다음 자바 스크립트를 사용하여이 값에 액세스 할 수 있습니다

$("#variableName").val() 

이 작동합니다. 하지만 보안 문제와 같은 잠재적 인 단점이 있습니까? 이 작업을 수행하는 올바른 방법은 무엇입니까?

답변

2

몇 가지 옵션이 있습니다. 그들 중 하나는 당신이 한 일이고 당신 안에 html 값을 넣습니다.

script 
    window.name = #{name}; 

이렇게하면 변수를 설정하는 인라인 스크립트가 만들어집니다. 다른 옵션은 ajax를 사용하는 것입니다. 즉, 해당 요청에 회신하려면 추가 경로를 만들어야합니다.

+0

이러한 '유용한 정보'는 input (type = 'hidden', id = 'variableName', value = '# {name}')을 사용하면 문제가 더 심각해 집니까? 아니면 완벽하게 괜찮습니까? 답장을 보내 주셔서 감사합니다. – Legendre

+0

민감한 데이터를 내부에 넣지 않는 한 괜찮습니다. – Pickels

+0

설명해 주셔서 감사합니다. :) – Legendre

관련 문제