@qiov/node-inc
v0.23.0
Published
incubator common modules for node
Downloads
6
Readme
incubator common modules for node
[TOC] incubator公共模块,提供incubator体系下用户管理、日志管理、授权登录等模块的能力
refresh token机制
如果一直处于操作中,incubator支持维持登录态,在登录态即将过期时刷新有效期。
原理
如果在过期前一段时间用户有操作,在调用center接口时, 1、增加请求头——
'need-refresh-token': 1
2、请求返回时会添加响应头——
'incubator-refresh-token': 'a4268c96-8a11-407e-b9a5-b1a7ac047929'
3、将用户session中的原token更新为新的token即可
node sdk实现方式:
需要配合fbi-project-incubator
项目模板使用,在poxyCenterRoutes中定义的路由,按需添加updateSession
方法即可。如:
router.post('/api/auth/islogin', async (ctx) => {
let res: any = ctx.session && !!ctx.session.token
if (res) {
res = await this.isLogin(ctx.session.token)
this.updateSession(res, ctx)
ctx.body = resReturn(res.data, res.code)
} else {
ctx.body = resReturn(res)
}
})
单测执行须知
sdk接口规范文档可能会因为更新不及时,存在与当前版本的接口不一致的地方,这种不一致会造成子应用通过sdk调用center服务的时候出现异常。为了能快速找出文档与接口的不一致,可以通过执行单元测试来发现。具体执行步骤如下:
incubator-center
项目切换到已发布的最新版本,启动本地的center服务打开
http://127.0.0.1:8081
,用平台管理员身份登录,抓包api/auth/getUser
获取token和id修改
tests/inc.config.ts
中部分参数,其中iamToken
和userId
来源于上一步{ // 本地环境 appId: '46444645', appSecret: 'd1b040e1-0dc1-4b8b-8812-297585daf101', incServer: 'http://127.0.0.1:8080', iamToken: 'a9b3545b-f799-4464-b921-fb3c08d6393e', userId: '144115205301725059', // 当前登录用户ID orgId: '100000000000000000000000', // center租户组织机构 }
执行单元测试
npm run test
。测试用例都是按照最新文档编写,下图体现了inc.org.getTreeById
接口文档与实际不一致的情况根据上一步中未通过用例的提示,修改接口文档