koa2實現攔截器進行登陸前session校驗

//定義容許直接訪問的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中間件以後,能夠進行用戶登陸的驗證,再配合此攔截器,能夠實現進入全部頁面以前,對是否登陸作一個驗證,把不須要攔截的路由寫在api

allowpage 數組裏。

這裏要注意:登陸頁面和登陸接口都不能攔截!!!!
相關文章
相關標籤/搜索