로그인 시스템을 구축 할 때 사용하는 Node.js 앱이 있습니다. 로그인 시스템이 작동하지만 '로그인 한 사용자 이름'이 표시되도록 수동으로 페이지를 새로 고쳐야합니다. 그것은 성공적으로 당신이 로그인을 작성해야/가입 필드에 기호를 숨 깁니다 여기 node.js - 로그인하면 사용자 이름이 표시되지 않습니다.
내 app.js의 코드입니다./**
* Application Configuration
*/
app.configure(function(){
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.enable('jsonp callback');
app.set('view engine', 'jade');
app.set('view options', {layout : false});
app.use(express.bodyParser());
app.use(express.cookieParser());
app.use(express.session({
secret : 'sessionsecret'
}));
app.use(express.methodOverride());
app.use(express.static(__dirname + '/public'));
app.use(function(req, res, next){
res.locals.session = req.session;
next();
});
app.use(app.router);
});
그리고 여기 login.js
의 일부가 내가 숨어 오전 로그인 양식.
if(username && password){
$.post('/login', $(this).serialize(), function(response){
if(response.retStatus === 'success'){
$('#loginForm').hide();
$('#signup-btn').hide();
//$(location).attr('href', '/admin');
}else if(response.retStatus === 'failure'){
$('#signup-error-modal').modal('show');
}
});
}
});
그리고 마지막으로이 당신이 더 이상 코드를보고 싶어 알려줘 자동으로
if(session.user)
div#logoutsection.pull-right
a#logout-btn.btn.btn-info.pull-right.top-bar-form-button(href='/logout') Logout
p#loginprompt.pull-right.login-prompt #{session.user.username}
small logged In
else
a#signup-btn.btn.pull-right.top-bar-form-button(href='#signup-modal', data-toggle="modal") Sign Up
form.pull-right.form-horizontal.top-bar-form(method="post", id="loginForm")
input.input-small.top-bar-form-textbox(id="username", type="text", name="User", placeholder="Username")
input.input-small.top-bar-form-textbox(id="password", type="password", name="Password", placeholder="Password")
button.btn.btn-primary.top-bar-form-button(type="submit", value="Sign In") Sign In
사용자 이름을 표시해야하는 뷰의 JADE/HTML 코드는, 나는 그것을 생각 여기 모두. 하지만 실제로 사용자 이름을 표시하기 위해 수동으로 새로 고쳐야하는 이유가 없습니다. 어떤 아이디어가 환영합니까?
답장을 보내 주셔서 감사합니다. 사용자 이름을'p # loginprompt'에 보내고이 줄을 추가했는데 수동으로 새로 고침해야합니다.'.html (response.username)'이 내 케이스에 맞지 않을 수도 있습니다. – germainelol
죄송 합니다만 DOM을 따르지 않고 교차 사이트 스크립팅 공격을 피합니다. – germainelol
Node.js의 응답에 사용자 이름을 추가해야하기 때문에 작동하지 않습니다. 그러나 서버 측에서 코드를 수정하고 싶지 않다면 항상 다음을 할 수 있습니다 : '$ ("p # loginprompt") html (사용자 이름); DOM을 사용하면 단락 요소를 수정하고 싶다면,이 경우'p # loginprompt'는 사용자 이름을 보내기 전에 이미 만들어져 있어야합니다. – ElHacker