尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

钉钉小程序接入若依(只做增删改查,先不管工作台免登)

钉钉小程序接入若依(只做增删改查,先不管工作台免登) 场景钉钉小程序调用若依后端接口做业务增删改查后端部署在这台轻量服务器Nginx 代理/api阿里云防火墙已经关闭 8080 公网。网络层面钉钉小程序不能直接访问 公网 IP:80808080 已经被防火墙封禁。小程序请求域名填http://你的公网IP/api后续换成域名 HTTPS链路钉钉小程序 → 80 端口 (Nginx) →127.0.0.1:8080若依后端。阿里云防火墙只需要开放80、443其余后端端口全部对内。⚠️钉钉小程序生产环境强制要求 HTTPS 域名裸 IP http 只能开发调试上线必须域名 SSL 证书。两种鉴权方案钉钉小程序方案 A钉钉小程序 code2session推荐钉钉官方流程钉钉小程序前端调用dd.getAuthCode()获取authCode小程序把 authCode 传给你的若依后端接口后端拿appKey appSecret authCode调用钉钉 openapi 接口dingtalk.oapi.miniapp.userinfo.get获取用户钉钉 userId后端拿到钉钉 userId匹配系统用户返回 token 给小程序小程序后续所有增删改查请求头部带上 token走若依原有Authorization鉴权。这样复用若依完整权限体系角色、菜单、数据权限直接做业务增删改查。方案 B简单模式仅内部使用开发调试内部 5 人小程序小程序请求 header 带上自定义标识后端拦截器识别钉钉小程序请求直接绑定固定内部账号 token。不建议上公网对外。Nginx 关键配置适配钉钉小程序和你现有若依 Web 共用一套后端server { listen 80; server_name 你的公网IP; # 若依web前端页面 location / { root /www/wwwroot/ruoyi-web; index index.html; try_files $uri $uri/ /index.html; } # 【钉钉小程序、web共用后端接口】全部转发本机8080 location /api/ { proxy_pass http://127.0.0.1:8080/; proxy_set_header Host $host; proxy_set_header X‑Real‑IP $remote_addr; proxy_set_header X‑Forwarded‑For $proxy_add_x_forwarded_for; } }SpringBoot application.ymltomcat 监听地址写127.0.0.1:8080不要 0.0.0.0只允许本机 Nginx 访问后端。yamlserver: port: 8080 address: 127.0.0.1后端依赖 接口要点若依 springbootpom.xml 引入钉钉 SDK或者直接 http 调用 openapidependency groupIdcom.aliyun/groupId artifactIddingtalk/artifactId version2.0.25/version /dependency配置文件填入钉钉小程序的ding.app-key、ding.app-secret写一个/api/ding/miniapp/login接口接收小程序传过来 authCode换取钉钉 userId匹配系统用户返回若依 token。小程序拿到 token后续所有增删改查请求请求头Authorization: Bearer xxxxxx直接复用若依已写好的 controller不用重写增删改查代码。钉钉小程序侧 request 请求示例//钉钉小程序 js dd.request({ url:http://你的公网IP/api/ding/miniapp/login, method:POST, data:{ authCode: res.authCode }, success:(res){ //拿到token存storage dd.setStorageSync(token,res.data.token) } }) //后续业务查询 dd.request({ url:http://你的公网IP/api/xxx/list, //若依原有业务接口 headers:{ Authorization:Bearer dd.getStorageSync(token) } })留意的地方不要小程序直接请求:8080防火墙已经封死必须走/api经过 Nginx 代理。钉钉小程序开发调试时开发工具打开【不校验合法域名】正式发布必须配置 HTTPS 域名。小程序调用钉钉 openapi 的authCode一次性只能使用一次不能重复调用。若依跨域Nginx 或者后端配置跨域允许钉钉小程序域名来源。数据库用户表增加字段ding_user_id保存钉钉小程序用户 ID用于账号绑定。重要提醒这里是互联网对外服务钉钉小程序鉴权不要前端硬编码 appSecretappSecret 只能保存在后端绝对不能暴露小程序前端。所有增删改查全部复用若依的 token、角色权限控制不要单独写一套无校验接口。
返回列表