没发现好用的权限管理的包,如何该自己写使用token做验证的权限管理?怎么写比较好?
欢迎选择我的课程,让我们一起见证您的进步~~
我的做法是这样的:
在所有路由规则前加一个通用规则,对进入的请求进行过滤,假设是一个 authenticate() 函数。
authenticate()
在 authenticate() 函数中,提取 url query 中的 timestamp 和 token 字段。先判断一下 timestamp 的合法性,比如与现在时间相比不能超过5分钟。然后根据你的 token 规则生成用于验证的 token,再和 url 中的 token 做对比,如果一致则验证通过。
timestamp
token
遇到任何不合法的情况,立即 return res.status(400).send({ok: -1, errMsg: "<ERROR MESSAGE>"}),最后是 next() 对合法的请求放行。
return res.status(400).send({ok: -1, errMsg: "<ERROR MESSAGE>"})
next()
权限管理这里是指?如果是登录校验的话,可以试试passport,这就是一个token-based插件,而且还有个不错的生态系统,基本常见的校验策略都有现成的实现。
token-based
如果指的是各种角色、用户之类的,可以试试rbac。
我的做法是这样的:
在所有路由规则前加一个通用规则,对进入的请求进行过滤,假设是一个
authenticate()
函数。在
authenticate()
函数中,提取 url query 中的timestamp
和token
字段。先判断一下timestamp
的合法性,比如与现在时间相比不能超过5分钟。然后根据你的 token 规则生成用于验证的 token,再和 url 中的token
做对比,如果一致则验证通过。遇到任何不合法的情况,立即
return res.status(400).send({ok: -1, errMsg: "<ERROR MESSAGE>"})
,最后是next()
对合法的请求放行。权限管理这里是指?如果是登录校验的话,可以试试passport,这就是一个
token-based
插件,而且还有个不错的生态系统,基本常见的校验策略都有现成的实现。如果指的是各种角色、用户之类的,可以试试rbac。