node-red 登录和鉴权

准备工作

我们先做一些准备工作
1、导入 萤火商城 里面的数据库脚本,会得到一个包含所有需要的表,和初始化数据的数据库
2、下载前端项目 萤火商城V2.0-store端
安装依赖

yarn install 

启动前端项目

yarn run serve

修改 public/config.js 文件里的 BASE_API 为 http://localhost:1880 (你本地node-red的地址)

登录

浏览器打开前端页面地址,输入用户名密码点击登录,会提示404错误:

Cannot POST /passport/login  ……

回到node-red界面,在双击tab栏增加一个流程: 后台登录
增加两个节点

image.png

再登录发现接口不报错了,搞定……一半了
前端没拿到期望的返回结果……

看了下演示站的返回结果,需要登录的userId和对应的token


image.png

根据用户名查询


image.png
image.png

用户信息处理,演示数据只有一个店铺,这里的store_id先写死


image.png

jwt签名

先安装 node-red-contrib-jwt 节点
对接收到的msg.token属性进行签名,并保存到msg.payload属性


image.png

最后通过function节点调整返回前端的数据结构

msg.payload = {
  token: msg.payload
}
return msg;

重新登陆下,登录部分ok了

jwt校验

登录后跳转到首页,需要 获取店铺信息: GET /store.user/info
因为后台的每个请求都会在header中携带 Access-Token,也就是上一步jwt生成的签名信息
所以这里把token解析作为子流程抽取出来


image.png

增加一个function节点,获取对应token


image.png

通过jwt verify节点解析 token


image.png

根据token解析出来的登录用户和店铺,判断是否有权限访问当前接口
另外把当前店铺的 store_id 放到 msg 中,方便下游节点直接访问


image.png

获取店铺信息的完整流程


image.png

完整流程

后台登录认证相关的完整流程


image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容