xzz的驿站

nestjs迁移升级prisma7.0版本

主要变化: 引入prisma.config.ts 用于配置env,seed等所有prisma设置项目,与package.json和schema解耦;同时client改为原始js代码,并生成到指定自定义目录,极大提高编译打包效率,避免不同环境生成client! 主要操作: 以下以使用自己的postgr

xzz2021 xzz2021 Published on 2025-11-21

支付宝扫码支付对接流程及实现

功能需求: 在自己的网站让用户扫码进行支付 整体流程 1. 前端发起请求, 传递订单或支付参数给后端 2. 后端将参数整合, 包含回调url, 调用阿里支付AlipaySdk, 成功响应后会收到返回的二维码字符信息, 交给前端 3. 前端自行将字符生成二维码, 用户扫码后, 支付宝会请求回调url通

xzz2021 xzz2021 Published on 2025-09-26

前后端双token的实现及无感刷新token

**基本原理: ** 主要原理同上一篇, 缺陷: 无法实时下线用户,因为有短token的窗口期 登录时后端颁发长短期的双token(jwt+refresh), jwt进行接口校验, 失效时用refresh获取新的jwt及新的refresh,这次jwtid存的是rtToken 差异点: accesst

xzz2021 xzz2021 Published on 2025-09-18

nestjs使用JwtToken实现多点登录限制

基本原理: token签发时分别在redis存入jwtid和jwtid的数组, 同时用数组剔除最老的jwtid并拉黑, 然后存入新的jwtid, 数组长度决定允许多少端点登录 guard层对解析出的userid和jwtid进行合法性校验 通过对jwtid和数组的控制可以实现自动或主动失效 常规配置简

xzz2021 xzz2021 Published on 2025-09-18

nestjs使用cookies

正常的数据都是nestjs接管了响应的, 所以可以直接return,而要设置cookie需要手动调用res 首先全局设置允许cookies携带跨域 import cookieParser from 'cookie-parser'; app.use(cookieParser()); app.

xzz2021 xzz2021 Published on 2025-09-16

nestjs使用ThrottlerModule配置redis

需求: 全局接口根据不同用户限流(默认的是根据接口,无论谁请求) 先配置ThrottlerModule,本项目使用的是@liaoliaots/nestjs-redis, 结合ioredis, 所以需要ThrottlerStorageRedisService包裹, 也可以直接配置url,不需要此依赖

xzz2021 xzz2021 Published on 2025-09-11

项目引入husky规范提交

实现功能: typescript及eslint检查, 代码自动格式化,提交信息内容校验 实现步骤 安装4个依赖 pnpm i husky lint-staged @commitlint/cli @commitlint/config-conventional -D 执行初始化命令,会自动在项目根目

xzz2021 xzz2021 Published on 2025-08-22

CASL注意事项

subject主体和它的类型彼此关联,就像对象实例和它的类彼此关联一样, 是因为检索了 subject.constructor.name 作为其主体类型 规则的顺序很重要: cannot 声明应跟在 can 之后,否则将被 can 覆盖。 传入的subject是泛类型时会跳过condition的检查

xzz2021 xzz2021 Published on 2025-08-01

顺丰下单及云打印接口对接(js版)

顺丰开放平台注册账号并认证, 新建开发者应用,选择相应接口分类, 关联API, 选择需要开发的接口;所有接口需进行沙箱测试, 成功3次后才可以上线生产. 参考文章 下单接口 下单详细

xzz2021 xzz2021 Published on 2025-08-01
Previous Next