Passport middleware for Koa
koa-passport version | koa version | branch |
---|---|---|
1.x | 1.x | v1.x |
2.x | 2.x | v2.x |
3.x | 2.x | master |
- change
ctx.passport.*
toctx.state.*
(e.g.ctx.passport.user
toctx.state.user
) - don't call passport methods on
ctx.req
(e.g. usectx.login
instead ofctx.req.login
) - update custom authentication callback arguments to
err, user, info, status
(e.g.passport.authenticate('local', function(err, user, info, status) { ... })(ctx, next)
)
// body parser
const bodyParser = require('koa-bodyparser')
app.use(bodyParser())
// Sessions
const convert = require('koa-convert') // necessary until koa-generic-session has been updated to support koa@2
const session = require('koa-generic-session')
app.keys = ['secret']
app.use(convert(session()))
const passport = require('koa-passport')
app.use(passport.initialize())
app.use(passport.session())
Passport's values and methods are exposed as follows:
app.use(async ctx => {
ctx.isAuthenticated()
ctx.isUnauthenticated()
ctx.login()
ctx.logout()
ctx.state.user
})