node.js写api,api的权限要不要加,如果要加的话怎么加?
自己评论一发
@wocaatm 路由加个中间件,判断下条件能否让其访问
看你需求了,不过一般要加!加的话就是自己加了
https://cnodejs.org/topic/58c1477b06dbd608756d0bca 可以参考我的这篇关于RESTfulApi权限实践
用的什么框架,也要写API
其实个人以为只要?username=xxx&password=xxx
,再用上https即可。token
很费事。
参考我的 https://github.com/open-node/open-rest 里的样板工程,权限验证做成一系列的小函数,控制器里灵活的组合这些小函数,这样每个函数足够简单,组合以后功能足够强大。
jwt
看cnodejs服务器的源码 From Noder
其实最简单的办法就是去判断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
推荐swagger-tools , 呵呵
可以 写一个 yml 文件, 写出 每个角色所属权限, 使用中间件判断
@wocaatm en
@sooxie 1
可以用node-Casbin:https://github.com/casbin/node-casbin