From 4694902deb71bce3c156b2e715bac258b2c3155d Mon Sep 17 00:00:00 2001 From: chenruilong Date: Tue, 14 Mar 2023 11:17:33 +0800 Subject: [PATCH] docs: update uni-id-pages.md --- docs/uniCloud/uni-id-pages.md | 19 ++++++++++++++++++- docs/uniCloud/uni-id-summary.md | 4 ++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/docs/uniCloud/uni-id-pages.md b/docs/uniCloud/uni-id-pages.md index bd4667495..1891d8ca8 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 4935961aa..68d0d165d 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"] } ``` -- GitLab