根目录文件:app.js(程序文件)、users.json(储存用户信息)、package.json(项目描述)
package.json
{
"name":"user login sys",
"description":"Our first user login system",
"version":"0.0.1",
"dependencies":{
"connect":"*"
}
}
users.json
{
"admin":{
"password":"admin",
"name":"admin test"
}
}
app.js
/**
* Created by ty4z2008 on 14-2-12.
*/
var connect=require('connect'),
users=require('./users');
var server=connect(
connect.logger('dev')
,connect.bodyParser(),
connect.cookieParser(),
connect.session({secret:"my app secret"}),
function(req,res,next){
if('/'==req.url&&req.session.logged_in){
res.writeHead(200,{'Content-Type':'text/html'});
res.end('Welcome back,<b>'+req.session.name+'</b>.' +
'<a href="/logout">logout</a> ');
}else{
next();
}
}
,function(req,res,next){
if('/'==req.url&&'GET'==req.method){
res.writeHead(200,{'Content-Type':'text/html'});
res.end(['<form action="/login" method="post">' +
'<fieldset>' +
'<legend>Please login</legend>' +
'<p>user:<input type="text" name="user"></p>' +
'<p>Password:<input type="password" name="password"></p>' +
'<button>Submit</button>' +
'</fieldset>' +
'</form>'].join(''));
}else{
next();
}
}
,function(req,res,next){
if('/login'==req.url&&'post'==req.method.toLowerCase()){
res.writeHead(200);
if(!users[req.body.user]||req.body.password!=users[req.body.user].password){
res,end('username/pwd error');
}else{
req.session.logged_in=true;
req.session.name=users[req.body.user].name;
res.end('Authenticated');
}
}else{
next();
}
}
,function(req,res,next){
if('/logout'==req.url&&req.session.logged_in){
req.session.logged_in=false;
res.writeHead(200);
res.end("logout");
}else{
res.writeHead(302,{
'location':'/'
})
res.end()
}
}
);
server.listen(3000)