创建一个中间件功能检查,如果用户角色等于“管理员”
创建一个中间件功能检查,如果用户角色等于“管理员”
我创建使用最新MEAN堆栈技术,一个博客。登录的用户可以创建一个角色,“管理员”和“版主新用户。
Creating a new user with an admin role or moderator role
这条路线是受保护的,目前,用户只有记录的可以访问它。这是因为如果用户进行身份验证或不检查中间件。
//check_auth.js
const jwt = require('jsonwebtoken');
module.exports = (req, res, next) => {
try {
const token = req.headers.authorization.split(' ')[1];
jwt.verify(token, 'my_jwt_secret');
next();
} catch (error) {
res.status(401).json({ message: 'Auth failed!'});
}
};
回答如下:
添加路由处理给需要验证并导入它需要的地方所有端点。 https://expressjs/en/guide/routing.html
恩。
router.post('/login', verify.isAdmin, (req, res, next) => {
//do something
})
//验证在单独的文件中的功能
module.exports = {
isAdmin: (req, res, next) =>{
if(req.user.admin){
next();
}else{
res.status(403).send();
}
}
}
完整的代码示例:
https://medium/@maison.moa/using-jwt-json-web-tokens-to-authorize-users-and-protect-api-routes-3e04a1453c3e
https://medium.freecodecamp/securing-node-js-restful-apis-with-json-web-tokens-9f811a92bb52
最新文章
- python len ljust
- 卷积与反卷积(转置卷积)关系的公式推导 及其各自的形式
- oracle中 rownum和rowid的用法
- linux中三台主机之间互信,22、linux的ssh互信配置
- Platforms
- 完美解决Ubuntu16.04虚拟机窗口全屏问题
- 手机移动端的UI框架
- 通过软件架构来达到易用性
- Jetpack Compose——Text(文本)的使用
- APP 专项测试之兼容性测试
- 推荐一个博客工具——Boke宝贝
- Set集合之TreeSet
- C语言void指针的用法
- VC++书籍介绍
- VC学习资料,
- 快速组合排列算法
- c语言循环题兔子第三个月生,C语言上机习题
- c语言屏幕输出函数相关题,C语言上机考试题目
- SimpleDateFormat的坑
- Clion安装教程