nyx_server
Version:
Node内容发布
29 lines (25 loc) • 903 B
JavaScript
module.exports = Authencation
function Authencation(options){
var loginurl = options.loginurl; //登录页面
if(loginurl.indexOf("?")>0){
var _loginurl = loginurl+ "&";
}else{
var _loginurl = loginurl+ "?";
}
var filter = options.filter || function(){return false}
return function(req , res , next){
if(loginurl == req.path || req.method === 'OPTIONS' || filter(req.path)){
next();
return;
}
var backurl = req.originalUrl;
var session = req.session;
if(/\/api\//g.test(req.path) || /\/resources\//g.test(req.path)){ //资源和API都不需要认证
return next();
}else if(!session.userinfo){
//如果用户没有认证,直接跳转到sso界面
return res.redirect(_loginurl+"from="+encodeURIComponent(backurl));
}
next();
}
}