koa2实现拦截器进行登录前session校验

2018-07-09 13:47:31来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

//定义允许直接访问的url
const allowpage = ['/login','/api/login']
//拦截
function localFilter(ctx) {
    let url = ctx.originalUrl
    if (allowpage.indexOf(url) > -1) {
        logger.info('当前地址可直接访问')
    }else {
        if (ctx.isAuthenticated()) {
            if(url==='/'){
                ctx.redirect('/projectList')
            }
            console.log('login status validate success')
        } else {
            console.log('login status validate fail')
            console.log(ctx.request.url)
            ctx.redirect('/login')
        }
    }
}
//session拦截
app.use(async (ctx, next) => {
    localFilter(ctx)
    await next()

})

在使用koa-passport,koa-session中间件之后,可以进行用户登录的验证,再配合此拦截器,可以实现进入所有页面之前,对是否登录做一个验证,把不需要拦截的路由写在

allowpage 数组里。

这里要注意:登录页面和登录接口都不能拦截!!!!

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:React之todo-list

下一篇:Javascript的内存泄漏分析