此篇仅做简述,详细请见实际项目
1 项目结构:
(1)服务端eggjs开发
(2)客户端umijs开发
(3)数据库mysql数据库
2 效果如下:
3 备注:
(1)数据库使用的在线数据库,下载后,需配置为自己的mysql数据库
(2)涉及知识点,官方网站上均有,请自行学习 https://eggjs.org/zh-cn/
4 github地址:https://github.com/HeavyShell/eggjs-server-umijs-client
过程事项:
一 JWT的使用demo
增加JWT的基本使用,便于后期拓展,如用户鉴权等功能。
1 访问http://127.0.0.1:7001/api/login 生成token,并返回
2 访问http://127.0.0.1:7001/api/login2 传参上一步返回的token值,服务端校验token
3 因测试,暂给的20秒内token 有效,可下载项目后测试,可使用工具Postman
二 增加用户权限校验逻辑
1 通过JWT形式用户权限校验
2 登录接口/api/login生成对应token,并返回客户端
3 客户端存储token于sessionStorage
4 请求带上token,于headers传输
5 服务端接口中间件tokenVerify校验token有效性,并返回新的token
6 退出,则清空本地token,并返回登录页
三 使用数据模型model,增加对sequelize的支持使用
注意事项:
1 model定义时app.model.define,由于原表中没有create_at时间字段,
(1)需设置timestamps: false, 忽略时间字段create_at等,因为Sequelize会默认视为数据表拥有时间字段
(2)需设置tableName: 'eggjs_blog', 指定表名
2 config.default.js中配置需指定用户名密码config.sequelize = {username:'admin',password:'123456'}
3 demo仅在查询详情的service中使用model形式获取数据
4 详情参考官网https://eggjs.org/zh-cn/tutorials/sequelize.html