round1
今天算是又学习了nodejs的操作mysql(通过mysql2的pool连接池),突然感觉自己行了,hahaha...
然后着手于设计一个记录事件的应用,第一步当然就是注册登录鉴权,之前学习了基础的JWT鉴权,然后发现储存密码方式之类的,需要用到hash加密,这样密码在数据库中不是明文加密且不可逆向破解。
关于这个hash加密方式:用户提交明文密码给后端,后端(bcryptjs)随机生成一个盐值,将salt和密码进行加密后储存到数据库,然后后续用户请求登录等操作时从数据库取出hash值,然后将salt+密码再次进行加密于数据库hash值进行对比,如果完全相等则密码正确。
真是👍,给我学累了。
持续更新ing....
round2
今天测试用户注册、登录、鉴权、刷新token,当获取token的时候一直不成功,检查userController.js控制器好长时间,结果是userModel.js执行SQL语句时少写了个await,哎,好像改了后其他功能也有了一些影响,一会再重搞一下。下一次学习安全的存储和使用refreshToken。
round3
今天将用户鉴权完善了一下,分别采用accessToken和refreshToken,并进行refreshToken版本管理,当用户重新登录,将之前token失效。仔细一想这样的话好像不可以多设备登录了。。今天user的后端写完了,看了下前端,准备试试vue3+ElementPlus。