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中間件之后,可以進行用戶登錄的驗證,再配合此攔截器,可以實現進入所有頁面之前,對是否登錄做一個驗證,把不需要攔截的路由寫在

allowpage 數組里。

這里要注意:登錄頁面和登錄接口都不能攔截!!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM