Files
iotlcm/docs/apika-shared-token-integration.md
T
MiFaZhan 96b1edff45 chore: 初始开源发布
iotlcm-upstream-chan:运营商上游通道适配服务(统一 /sim/* 协议)。

- 内联原私有依赖:yunze-public → internal/pub/(10 包 18 文件),
  yunze-pb/pb → internal/pb/(9 文件);Consul 注册改用官方
  gogf/gf/contrib/registry/consul/v2(API 兼容)
- Go module:yz-svr → git.5iot.com/iotlcm-public/iotlcm-upstream-chan
- 修复 mingqian 包测试:实现重构后 `adapter.operations` 字段已移除,
  测试断言按当前实现语义重写(不改产品行为)
- 凭据与内部标识脱敏:MySQL/Redis/Consul 凭据、私网与生产 IP、
  内网域名、真实手机号、注释里的真实 token/transid
- 移除内部资产:CI 触发器、生产通道种子 SQL、真实凭据测试资源文档
- Dockerfile 改用公共基础镜像,移除写死的 registry 凭据
- 补 Apache-2.0 LICENSE,重写 README,LF 行尾 + .gitattributes
2026-10-22 16:08:06 +08:00

26 lines
1.1 KiB
Markdown

# Apika mobile shared-token channel
Use `temp_model=shared_token` with template key `sim_onelink_kedang_v1`.
Set `token.baseUrl` to `http://test.iotapi.apika.cn` in the test environment
or `https://iotapi.apika.cn` in production. The token path is
`/iot-api/iot-card-info/getRefreshToken`.
Channel fields:
- `app_key`: Apika `appKey`, sent in the request header and body.
- `app_secret`: Apika `appSecret`, sent in the request header and body and used
to calculate the signature.
- `chan_config`: `{"appId":"..."}`; `appId` is sent as JSON field `appid`.
The request sends `appKey`, `appSecret`, and `signature` in both the headers
and JSON body. The JSON body also contains `appid`.
The signature is calculated by building `{appKey}:{appSecret}` with the
literal braces, hashing its UTF-8 bytes with SHA-256, converting the digest to
uppercase hexadecimal, and Base64-encoding that hexadecimal string.
The returned `data.shareToken` is cached for five minutes and refreshed thirty
seconds before expiry. The returned `transid` is not used as the OneLink
business request transaction ID.