diff --git a/docs/uniCloud/uni-id-pages.md b/docs/uniCloud/uni-id-pages.md index bd46674956c1d2272b909c9737da6e1cb55168e5..1891d8ca8f748307471c9bb7f35ffff492dd8d3a 100644 --- a/docs/uniCloud/uni-id-pages.md +++ b/docs/uniCloud/uni-id-pages.md @@ -2362,7 +2362,24 @@ uni-id 在URL化请求时,会对以下 API 进行调用鉴权验证, |uni-id-signature|string|是|请求鉴权签名; 签名算法见下| ### 鉴权签名算法 -1. 将API请求参数(只包括请求body中的params参数,但除去array与object类型的参数),根据参数名称的ASCII码表的顺序排序。如:`foo:1, bar:2, foo_bar:3, foobar:4`排序后的顺序是 `bar:2, foo:1, foo_bar:3, foobar:4` + +如下为某请求体参数,介绍如何进行签名: +```json +{ + "clientInfo": { + "appId": "__test__" + }, + "uniIdToken": "xxxxxx", + "params": { + "foo": 1, + "bar": 2, + "foo_bar": 3, + "foobar": 4 + } +} +``` + +1. 将API请求参数(只包括请求体(body)中的`params`参数,但除去array与object类型的参数),根据参数名称的ASCII码表的顺序排序。如:`foo:1, bar:2, foo_bar:3, foobar:4`排序后的顺序是 `bar:2, foo:1, foo_bar:3, foobar:4` 2. 将排序好的参数名和参数值按照 `key1=value1&key2=value2` 格式拼装在一起,根据上面的示例得到的结果为:`bar=2&foo=1&foo_bar=3&foobar=4` 3. 把拼装好的字符串采用utf-8编码,开发者使用请求鉴权密钥与随机串对时间戳与待签名字符串进行 HmacSHA256 加密处理,计算得出请求签名值,如:`HmacSHA256(timestamp + bar=2&foo=1&foo_bar=3&foobar=4, requestAuthSecret + nonce)` 4. 将加密得到的二进制结果使用十六进制表示,值必须为大写,如:`Hex.stringify(Utf8.parse("helloworld")) = "68656C6C6F776F726C64"` diff --git a/docs/uniCloud/uni-id-summary.md b/docs/uniCloud/uni-id-summary.md index 4935961aa8823222c8a2f26f0f5fab122974104a..68d0d165da4faea12b7ba63b78b3a9db1c329c2e 100644 --- a/docs/uniCloud/uni-id-summary.md +++ b/docs/uniCloud/uni-id-summary.md @@ -345,9 +345,9 @@ uni-id-co 与 uni-id-pages 内的前端页面均支持这四个内置规则 配置项`userRegisterDefaultRole`的值类型为`Array`,每个元素为角色ID(role_id), 例如: -```javascript +```json { - "userRegisterDefaultRole": ['user'] + "userRegisterDefaultRole": ["user"] } ```