1.5.2 • Published 4 years ago

@button-dev/utils-backend v1.5.2

Weekly downloads
10
License
ISC
Repository
-
Last release
4 years ago
/**
 * 设置configs,将在本软件包内部应用
 * @param {object} newConfigs
 */
function setConfigs(newConfigs)

/**
 * 抛出一个错误,将status和error打包为JSON.stringify形式,常用于ctx
 * @param {number} status
 * @param {number} code
 * @param {string} message
 * @throws {Error}
 */
function throwError

/**
 * 注入错误反馈响应
 * @param {*} ctx
 * @param {Error} error
 */
function throwErrorResponse(ctx, error)

/**
 * 注入401响应
 * @param {*} ctx
 */
function throwUnauthorizedErrorResponse(ctx)

/**
 * 请求一个v3标准的POST API
 * @param {string} url
 * @param {object} data
 * @param {boolean} withAccess 如果true, 则向data中添加{ jwtAccess }
 * @returns {object}
 * @throws {Error}
 */
async function requestApi(url, data, withAccess = false)

/**
 * 检查请求体中是否有合法的jwtAccess
 * @param {*} ctx
 * @returns {boolean}
 */
function jwtHasAccess(ctx)

/**
 * 查询当前请求体是否有某个权限。请求体可以是系统级别(是否有jwtAccess),也可以是某个用户(jwtUserId)
 * @param {*} ctx
 * @param {string} permission 权限条目,默认'system'
 * @param {boolean} noCache 本次查询是否禁用缓存
 * @returns {Promise<boolean>}
 */
function jwtHasPermission(ctx, permission = 'system', noCache = false)

/**
 * 用已配置的cert来生成jwt字符串
 * @param {object|*} data 待加密数据,推荐类型为对象
 * @param {number} expire 过期时间(秒)
 * @returns {string}
 */
function jwtGenerateWithConfiguredCert(data, expire = 20)

/**
 * 用已配置的cert来解密jwt字符串
 * @param {string} text
 * @returns {*}
 */
function jwtResolveWithConfiguredCert(text)

/**
 * 生成一个access对象,可用于`ctx.body = { ...accessObject, ...others }`
 * @param {number} expire
 */
function jwtGenerateAccessObject(expire = 20)

/**
 * @getClientIP
 * @desc 获取用户 ip 地址
 * @param {Object} req - 请求
 */
function getClientIP(req)

/**
 * 默认中间件
 * 捕捉错误,返回错误响应;debug模式下打印POST的请求体
 * @param {*} ctx
 * @param {async function} next
 */
async function middleware(ctx, next)

/**
 * 尝试解析jwtUserId为一个正常的userId
 * @param {*} ctx
 * @returns {number|null}
 */
function jwtResolveUserId(ctx)

/**
 * 查询用户(或游客)的权限
 * @param {number} userId 用户id,留空表示游客
 * @param {boolean} noCache 本次查询是否禁用缓存
 * @returns {Promise<{ allow:[], forbidden:[] }>}
 */
async function getPermission({ userId, noCache = false })

/**
 * 查询用户(或游客)的是否有某个权限
 * @param {string} permission 权限条目,如 'project.read'
 * @param {number} userId 用户id,留空表示游客
 * @param {boolean} noCache 本次查询是否禁用缓存
 * @returns {Promise<boolean>}
 */
async function hasPermission({ permission, userId, noCache = false })

/**
 * 加密jwtUserId
 * @param {number} userId 用户id
 * @param {number} expire 有效期(秒)
 * @returns {string}
 */
function jwtGenerateUserId({ userId, expire = 3600 * 24 * 14 })
1.5.2

4 years ago

1.5.1

4 years ago

1.5.0

4 years ago

1.4.1

4 years ago

1.4.0

4 years ago

1.3.0

4 years ago

1.2.1

4 years ago

1.2.0

4 years ago

1.1.0

4 years ago

1.0.0

4 years ago