NodeJs session中间件 及应用(简单的登录与登出)
来源:互联网 发布:ospf链路状态数据库 编辑:程序博客网 时间:2024/06/10 17:31
session中间件用于为了保存用户数据提供一个session管理器。虽然session中的数据与cookie分开保存,但是session中的数据经过加密处理后默认保存在一个cookie中。因此,在使用session中间件之前必须使用cokieParser中间件
在使用了session中间件之后,代表客户端请求的http.IncomingMessage对象就具有了一个session属性,属性值为一个对象,该对象保存了所有session数据。
var connect = require('connect'), users = require('./users');//注意这里直接require了json文件 当你只是对外暴露数据的时候 就不需要加上module.exports 直接把数据文件以JSON的形式暴露出来就好var server = connect( connect.logger('dev'), connect.bodyParser(), connect.cookieParser(), connect.session({secret:'my app secret'}),//这句不能少 否则 会报错找不到 req.session.logged_in 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 Log In</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){ res.writeHead(200); if(!users[req.body.user]||req.body.password!=users[req.body.user].password){ res.end('Bad username/password'); }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=false; res.writeHead(200); res.end('Logged out!'); }else{ next(); } });server.listen(3000);
1 0
- NodeJs session中间件 及应用(简单的登录与登出)
- web的登录与登出功能
- django 登录与登出
- NodeJS+express+ajax的简单post登录应用
- ubuntu的root用户登录登出及密码设置
- APICloud技巧 | 用户登录与登出的实现方法
- 实现用户注册与登录、登出(一)
- 实现用户注册与登录、登出(二)
- 实现用户注册与登录、登出(三)
- 中间件的概念及应用
- laravel框架的登录登出
- java web用户频繁非正常登出系统(session丢失)的原因分析及解决思路
- 集成CAS单点登录使用Shiro Session时,实现多点登出的解决办法
- NodeJS Connect 简单路由中间件
- nodejs的中间件
- Shiro源码研究之登录与登出
- 网页简单的登出功能
- nodejs pm2的简单应用
- iOS数字时间与时间的相互转换
- E5 2670 V1 C1 C2版本区别
- 神仙趋势,运筹帷幄,通达信公式
- 学习 Lisp 语言的相关书籍
- ios uitextfield uialertview keyboard奇怪的问题
- NodeJs session中间件 及应用(简单的登录与登出)
- 淘宝穿越。。。@^@
- ehcache,redis和memcache总结
- 真机运行程序Xcode提示The identity used to sign the executable is no longer valid
- 画表格
- JSONObject 解析json
- 高仿微信朋友圈
- [DeepLearning] 深度学习框架Caffe初体验之病斑检测
- 在ftp中填充数据模型