用node.js写restful接口,接口的访问权限问题
node.js写api,api的权限要不要加,如果要加的话怎么加?
15 回复
参考我的 https://github.com/open-node/open-rest 里的样板工程,权限验证做成一系列的小函数,控制器里灵活的组合这些小函数,这样每个函数足够简单,组合以后功能足够强大。
其实最简单的办法就是去判断url, 什么url需要验证,什么的不需要,比如我这个设置需要验证url的都统一url上面有一个 /auth_ 标示,对于这类url,则去判断登录状态
/**
* auth 中间件,所有需要验证路由,必须有 '/auth_'
* @param ctx
* @param next
*/
module.exports = async (ctx, next) => {
try {
let route = ctx.originalUrl;
let reg = /\/auth_/;
if(reg.test(route)){
if(!ctx.session.user){
throw new Error('请先登录')
}
}
await next();
} catch (e) {
ctx.status = 401;
ctx.body = e.message
}
};
整个项目地址,可以看这个:https://github.com/yujintang/koa2-server