UNPKG

nyx_server

Version:

Node内容发布

29 lines (25 loc) 903 B
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(); } }