带你一文使用NodeJS、JWT、Vue搞定基于角色的授权( 三 )
用户控制器模块定义了所有用户的路由 。 使用了授权中间件的路由受约束于通过认证的用户 , 如果包含了角色(如 authorize(Role.Admin))则路由受限于特定的管理员用户 , 否则 (e.g. authorize()) 则路由适用于所有通过认证的用户 。 没有使用中间件的路由则是公开可访问的 。
getById() 方法中包含一些额外的自定义授权逻辑 , 允许管理员用户访问其他用户的记录 , 但禁止普通用户这样做 。
应用配置路径: /config.json
{"secret": "THIS IS USED TO SIGN AND VERIFY JWT TOKENS, REPLACE IT WITH YOUR OWN SECRET, IT CAN BE ANY STRING"}
重要: "secret" 属性被 API 用来签名和校验 JWT 令牌从而实现认证 , 应将其更新为你自己的随机字符串以确保无人能生成一个 JWT 去对你的应用获取未授权的访问 。
主服务器入口路径: /server.js
require('rootpath')();const express = require('express');const app = express();const cors = require('cors');const bodyParser = require('body-parser');const errorHandler = require('_helpers/error-handler');app.use(bodyParser.urlencoded({ extended: false }));app.use(bodyParser.json());app.use(cors());// api 路由app.use('/users', require('./users/users.controller'));// 全局错误处理app.use(errorHandler);// 启动服务器const port = process.env.NODE_ENV === 'production' ? 80 : 4000;const server = app.listen(port, function () {console.log('Server listening on port ' + port);});
server.js 作为 API 的主入口 , 配置了应用中间件、绑定了路由控制权 , 并启动了 Express 服务器 。
【带你一文使用NodeJS、JWT、Vue搞定基于角色的授权】作者:江米小枣tonylua链接:来源:掘金
- 集录音转写、拍照翻译为一体,搜狗AI录音笔E2带你开启智慧办公新体验
- 或使用天玑1000+芯片?荣耀V40已全渠道开启预约
- 苹果将推出使用mini LED屏的iPad Pro
- 手机能用多久?如果出现这3种征兆,说明“默认使用时间”已到
- 苹果有望在2021年初发布首款使用mini LED显示屏的 iPad Pro
- 笔记本保养有妙招!学会这几招笔记本再战三年
- 数据可视化三节课之二:可视化的使用
- 索尼sw77与sw55的使用差别感受
- 一文读懂,书架箱和落地箱到底哪个好?
- 小姐姐带你探索萌粉电竞显示器的秘密