Koa Authstream动与撰写
在expressjs中我有这个authentication函数。 基本上这只是一个将中间件组合成一个中间件的function。 从现在开始,我想从快递到koa,我怎样在koa做同样的事情呢?
import compose from 'composable-middleware'; export function isAuthenticated() { return compose() // Validate JWT .use(function(req, res, next) { if (req.query && req.query.hasOwnProperty('access_token')) { req.headers.authorization = 'Bearer ' + req.query.access_token; } validateJwt(req, res, next); }) // Attach user to request .use(function(req, res, next) { User.findByIdAsync(req.user._id) .then(user => { if (!user) { return res.status(401).end(); } req.user = user; next(); }) .catch(err => next(err)); }); }
在这里回答我自己的问题并不困难
import compose from 'koa-compose'; import convert from 'koa-convert'; import User from '../api/user/user.model'; const validateJwt = convert(koaJwt({ secret: config.secrets_session })); /** * Attaches the user object to the request if authenticated * Otherwise returns 403 */ export function isAuthenticated() { function authentication(ctx, next) { // allow access_token to be passed through query parameter as well if (ctx.query && ctx.query.hasOwnProperty('access_token')) { ctx.headers.authorization = `Bearer ${ctx.query.access_token}`; } validateJwt(ctx, next); } function attachUserToContext(ctx, next) { User.findById(ctx.state.user._id) .then(user => { if (!user) { return ctx.status = 401; } ctx.state.user = user; next(); }) .catch(err => next(err)); } return compose([authentication, attachUserToContext]); }
- 在Node.js Web-Server中确定用户angular色并授予API访问权限的正确方法是什么?
- 正确的护照策略匿名移动应用程序
- 我无法使用passport-facebook来validation路线
- REST | 智威汤逊| 身份validation:如何validation安全资源的权限
- 如何使用身份validation令牌访问用户数据
- 使用passport.js在node.js中进行身份validation后,redirect到上一页
- 使用app.set('app_secret',data)将密钥存储在nodejs中是否安全?
- Expressjs护照本地不能注销
- expression3.0和护照authentication