关于uni-app 外部系统联登遇到的坑

慈云数据 1年前 (2024-03-23) 技术支持 72 0

由于鄙人用了uni-app的即时通讯,所以用户体系必须同步uni-app那边的。这些操作也必须由自己的服务器来完成,所以需要把uni-app那边的接口进行url化。

关于uni-app 外部系统联登遇到的坑
(图片来源网络,侵删)

uni-app的文档地址:云对象(uni-id-co) | unicloud

所用的接口为

关于uni-app 外部系统联登遇到的坑
(图片来源网络,侵删)

POST /your-uni-id-co-path/externalRegister

POST /your-uni-id-co-path/externalLogin

 

1.第一步,先去将接口url化,路径什么的正确,保证自己服务器能调用,不会报404

2.第二步,添加请求头(必需加上,不然会报uni-id-unsupported-request)

uni-id-nonce: xxxxxxx
uni-id-timestamp: 1676882808550
uni-id-signature: 11c965267a4a02c6978949c7135215b0a75aea22b2b84ed491e792365c8269efa
Content-Type: application/json

uni-id-nonce是随机字符串,自己定义

uni-id-timestamp时间戳,这里时间戳是在自己服务器生成的如果和到达uni那边时间差太大(貌似十几秒),就会报uni-id-illegal-request

uni-id-signature  params参数签名,至于怎么签名,详见开发文档。

                          这里签名没对上也会报uni-id-illegal-request

3.第三步,除了请求头,请求体也有要求。

{
	"clientInfo": {},
	"uniIdToken": "",
	"params": {}
}

clientInfo里面有个uniPlatform字段必须填,params里面的参数和签名的参数需要保持一致。例如,外部注册那接口externalRegister,需要参数externalUid,类型需要对上,不然报

uni-id-invalid-params。

至于uniIdToken注册接口不需要。

微信扫一扫加客服

微信扫一扫加客服