diff --git a/docs/uniCloud/cf-functions.md b/docs/uniCloud/cf-functions.md
index d308d4d49f1a0a6079e4a98404e957eceff94381..aeed9cfa29f8559e9cd77012df255470cd4f65f6 100644
--- a/docs/uniCloud/cf-functions.md
+++ b/docs/uniCloud/cf-functions.md
@@ -49,9 +49,9 @@ HBuilderX中uniCloud项目的云函数均为项目的uniCloud/cloudfunctions目
| | └──package.json 公用模块package.json
| │───uni-clientDB-actions
| │ └──new_action.js clientDB action代码 详情
-| └───function-name 云函数目录
-| │──index.js 云函数代码
-| └──package.json 包含云函数的配置信息,如url化、定时设置、可用内存等内容 详情
+| │───function-name 云函数目录
+| │ │──index.js 云函数代码
+| │ └──package.json 包含云函数的配置信息,如url化、定时设置、可用内存等内容 详情
| └───object-name 云对象目录
| │──index.obj.js 云对象代码
| └──package.json 包含云对象的配置信息,可用内存等内容 详情
@@ -227,7 +227,9 @@ exports.main = async (event, context) => {
##### 其他客户端信息@client-info
-- 以下四个属性只有使用uni-app以callFunction方式调用才能获取,由客户端传递到云函数
+> HBuilderX 3.4.9起,可以获取所有客户端`getSystemInfo`返回的客户端信息,详细字段列表参考:[getSystemInfo](https://uniapp.dcloud.net.cn/api/system/info.html#getsysteminfo)
+
+- 客户端信息只有使用uni-app客户端以callFunction方式调用才能获取,由客户端传递到云函数
- 实际业务中务必验证一下前端传来的数据的合法性
```js
@@ -242,8 +244,8 @@ exports.main = async (event, context) => {
**注意事项**
-- event大小不可超过100kb
-- 云函数url化的场景下无法获取`context.OS`、`context.PLATFORM`、`context.APPID`、`context.DEVICEID`
+- 阿里云event大小不可超过1MB,腾讯云event大小不可超过6MB
+- 云函数url化的场景下无法获取客户端信息,`context.OS`、`context.PLATFORM`、`context.APPID`、`context.DEVICEID`等
>在云函数URL化的场景无法获取客户端平台信息,可以在调用依赖客户端平台的接口接口之前(推荐在云函数入口)通过修改context.PLATFORM手动传入客户端平台信息供其他插件(如:uni-id)使用
diff --git a/docs/uniCloud/cloud-obj.md b/docs/uniCloud/cloud-obj.md
index 0950bed2ba4974c2284e7beeab2650045f27713f..a6f88678e011d40adc1c4ccee518b71a2f47b557 100644
--- a/docs/uniCloud/cloud-obj.md
+++ b/docs/uniCloud/cloud-obj.md
@@ -216,6 +216,8 @@ uniCloud有众多API,另见:[uniCloud的API清单](uniCloud/cf-functions.htm
### 获取客户端信息@get-client-info
+> HBuilderX 3.4.9起此接口可获取所有客户端`getSystemInfo`返回的客户端信息,完整字段列表参考:[getSystemInfo](https://uniapp.dcloud.net.cn/api/system/info.html#getsysteminfo)
+
**接口形式**
`this.getClientInfo()`
@@ -253,6 +255,8 @@ module.exports = {
|deviceId |string |是 |客户端deviceId,目前同getSystemInfo内的deviceId|
|uniIdToken |string |是 |客户端用户token |
+
+
**注意**
- 与云函数内获取客户端platform稍有不同,云函数未拉齐vue2、vue3版本app平台的platform值,vue2为`app-plus`,vue3为`app`。云对象无论客户端是vue2还是vue3,在app平台获取的platform均为`app`。这一点在使用uni-id时需要特别注意,详情见:[uni-id文档 preferedAppPlatform](uniCloud/uni-id.md?id=prefered-app-platform)
diff --git a/docs/uniCloud/uni-id.md b/docs/uniCloud/uni-id.md
index 83b1ef2ace5759c33412a0b4447752047e9204e7..6a168ba4ce019eefa6425ba00d40f53ec2f20df0 100644
--- a/docs/uniCloud/uni-id.md
+++ b/docs/uniCloud/uni-id.md
@@ -250,7 +250,7 @@ const userInfo = atob(userSegment) // '{"uid":"61a593ba91a750000166f78d","role":
**前提介绍:**
-uni-app vue2版本app端对应的platform为`app-plus`,uni-app vue3版本app端对应的platform为`app`。此改动引发了一些问题,比如在uni-id内使微信登录会无法匹配对应的平台导致登录报错。
+uni-app vue2版本app端对应的platform为`app-plus`(HBuilderX 3.4.9起 vue2版本app端对应的platform值也调整为`app`),uni-app vue3版本app端对应的platform为`app`。此改动引发了一些问题,比如在uni-id内使微信登录会无法匹配对应的平台导致登录报错。
由于uni-id将客户端平台存储在了数据库内(例如:app端微信登录的openid被存储为`wx_openid['app-plus']`),此问题无法平滑升级,因此对于新老项目建议分别处理。
@@ -787,6 +787,32 @@ uniCloud.callFunction({
```
+### 主动刷新token@refresh-token
+
+> 新增于uni-id 3.3.14
+
+用法:`uniID.refreshToken(Object RefreshTokenParams);`
+
+**参数说明**
+
+| 字段| 类型 | 必填| 说明 |
+| --- | --- | --- | --- |
+| token | String| 是 |用户token|
+
+**示例**
+
+```js
+const {
+ token,
+ tokenExpired
+} = await uniID.refreshToken({
+ token: 'xxx'
+})
+```
+
+**注意**
+
+- 刷新token后会在再次触发查库校验token时使token失效
### 登出@logout
@@ -937,15 +963,37 @@ exports.main = async function(event,context) {
}
```
+### 使用短信验证码重置密码@reset-pwd-by-sms
+
+> 新增于 uni-id 3.3.14
+
+用法:`uniID.resetPwdBySms(Object ResetPwdBySmsParams)`
+
+**参数说明**
+
+| 字段 | 类型 | 必填 | 说明 |
+| --- | --- | --- | --- |
+| mobile | String| 是 |手机号码 |
+| code | String| 是 |验证码 |
+| password | String| 是 |重置后的密码 |
+
+**响应参数**
+
+无
+
+**注意**
+
+- 对应发送短信验证码接口`type`为`reset-pwd`
+
### 加密密码 @encrypt-password
用法:`uniID.encryptPwd(String password)`
**参数说明**
-| 字段 | 类型 | 必填| 说明 |
-| --- | --- | --- | --- |
-| password | String| 是 |要加密的字符串 |
+| 字段 | 类型 | 必填 | 说明 |
+| --- | --- | --- | --- |
+| password | String| 是 |要加密的字符串 |
**响应参数**
@@ -1132,6 +1180,36 @@ exports.main = async function(event,context) {
- 此接口仅校验token是否合法,从token中获取用户信息。不查库校验token,也不会查库获取用户信息。适用于不想使用checkToken获取用户信息的场景(checkToken内包含其他逻辑,比如自动刷新token等)
+### 添加用户(非注册)@add-user
+
+> 新增于 uni-id 3.3.14
+
+用法:`uniID.addUser(Object AddUserParams);`
+
+**BanAccountParams参数说明**
+
+| 字段 | 类型 | 必填 | 说明 |
+| --- | --- | --- | --- |
+| username | String| username、email、mobile至少有一个 |用户名 |
+| mobile | String| username、email、mobile至少有一个 |手机号 |
+| email | String| username、email、mobile至少有一个 |邮箱 |
+| password | String| 否 |密码 |
+| role | Array | 否 |角色列表 |
+| authorizedApp | Array | 否 |此用户能登录的app对应的appId列表 |
+
+
+**响应参数**
+
+| 字段 | 类型 | 必备 | 说明 |
+| --- | --- | --- | --- |
+| uid | String| 是 |添加用户返回的用户id |
+
+**注意**
+
+- authorizedApp不传时创建的用户无法登录任一端,后续可以调用授权登录接口再次授权登录
+- 传入email、mobile时,自动会将对用的email_confirmed、mobile_confirmed设置为1
+
+
### 封禁账户@ban-account
- 由于客户端存在token缓存,执行封禁操作并不会实时生效。用户下次获取token(包括刷新token)时才会出现错误信息
@@ -1148,9 +1226,9 @@ exports.main = async function(event,context) {
**响应参数**
-| 字段| 类型 | 必填| 说明 |
-| --- | --- | --- | --- |
-| code| Number| 是 |错误码,0表示成功|
+| 字段 | 类型 | 必填 | 说明 |
+| --- | --- | --- | --- |
+| errCode | Number | String | 是 |错误码,0表示成功 |
### 解禁账户@unban-account
@@ -1285,12 +1363,12 @@ uni.removeStorageSync('uni_id_token_expired')
**参数说明**
-| 字段 | 类型 | 必填| 说明 |
-| --- | --- | --- | --- |
-| mobile | String| 是 |用户手机号 |
-| templateId| String| 是 |`uni-id 1.1.8+`用户自定义模板Id,不传则使用uniID_code(请注意目前此模板已经不再开放使用,请传入自定义模板Id,已经报备使用的用户不受影响),请使用类似下面模板示例的参数申请模板 |
-| code | String| 否 |验证码字符串 |
-| type | String| 是 |类型,用于防止不同功能的验证码混用,目前支持的类型`login`登录、`register`注册、`bind`绑定手机、`unbind`解绑手机|
+| 字段 | 类型 | 必填 | 说明 |
+| --- | --- | --- | --- |
+| mobile | String| 是 |用户手机号 |
+| templateId| String| 是 |`uni-id 1.1.8+`用户自定义模板Id,请使用类似下面模板示例的参数申请模板 |
+| code | String| 否 |验证码字符串 |
+| type | String| 是 |类型,用于防止不同功能的验证码混用,目前支持的类型`login`登录、`register`注册、`bind`绑定手机、`unbind`解绑手机|
```
// 短信模板示例,请在https://dev.dcloud.net.cn/uniSms申请签名(短信开头中括号内部分)及模板
@@ -2021,6 +2099,27 @@ exports.main = async function(event,context) {
}
```
+### 获取App平台微信登录用户信息@get-weixin-user-info
+
+> 新增于 uni-id 3.3.14
+
+用法:`uniID.getWeixinUserInfo(Object GetWeixinUserInfoParams);`
+
+**参数说明**
+
+| 字段 | 类型 | 必填 | 说明 |
+| --- | --- | --- | --- |
+| accessToken | String| 是 |用户登录时返回的accessToken|
+| openid | String| 是 |用户登录时返回的openid |
+
+**响应参数**
+
+| 字段 | 类型 | 说明 |
+| --- | --- | --- |
+| nickname | String|用户昵称 |
+| avatar | String|用户头像 |
+
+
## QQ@qq
> 新增于3.3.0版本
@@ -3035,36 +3134,41 @@ const res = await uniID.forbidAppLogin({
在unicloud [web控制台](https://unicloud.dcloud.net.cn/) 新建数据表时,可以从`uni-id`的模板分类里找到下面的表,并一键创建这些表。
-## 用户表
+## 用户表@user-table
表名:`uni-id-users`
-| 字段 | 类型 | 必填| 描述 |
-| ----------------| --------- | ----| ------------------------------------------- |
-| \_id | Object ID | 是 | 存储文档 ID(用户 ID),系统自动生成 |
-| username | String | 否 | 用户名,不允许重复 |
-| password | String | 否 | 密码。加密存储 |
-| nickname | String | 否 | 用户昵称 |
-| gender | Integer | 否 | 用户性别:0 未知 1 男性 2 女性 |
-| status | Integer | 是 | 用户状态:0 正常,1 禁用,2 审核中,3 审核拒绝,4 已注销 |
-| mobile | String | 否 | 手机号码 |
-| mobile_confirmed| Integer | 否 | 手机号验证状态:0 未验证 1 已验证,未验证用户不可登录 |
-| email | String | 否 | 邮箱地址 |
-| email_confirmed | Integer | 否 | 邮箱验证状态:0 未验证 1 已验证,未验证用户不可登录 |
-| avatar | String | 否 | 头像地址 |
-| wx_unionid | String | 否 | 微信unionid |
-| wx_openid | Object | 否 | 微信各个平台openid |
-| ali_openid | String | 否 | 支付宝平台openid |
-| comment | String | 否 | 备注 |
-| realname_auth | Object | 否 | 实名认证信息 |
-| register_date | Timestamp | 否 | 注册时间 |
-| register_ip | String | 否 | 注册时 IP 地址 |
-| last_login_date | Timestamp | 否 | 最后登录时间(注意并非只有登录操作会修改此值,token刷新时也会修改最后登录时间。应用启动时若token有效则不会触发登录行为,也不会更新本值。最后登录IP同理)|
-| last_login_ip | String | 否 | 最后登录时 IP 地址 |
-| login_ip_limit | Array | 否 | 登录 IP 限制 |
-| inviter_uid | Array | 否 | 邀请人uid,按层级从下往上排列的uid数组,即第一个是直接上级|
-| my_invite_code | String | 否 | 用户自己的邀请码 |
-| role | Array | 否 | 用户角色列表,由role_id组成的数组 |
+| 字段 | 类型 | 必填 | 描述 |
+| ---------------- | --------- | ---- | ------------------------------------------- |
+| \_id | Object ID | 是 | 存储文档 ID(用户 ID),系统自动生成 |
+| username | String | 否 | 用户名,不允许重复 |
+| password | String | 否 | 密码。加密存储 |
+| nickname | String | 否 | 用户昵称 |
+| gender | Integer | 否 | 用户性别:0 未知 1 男性 2 女性 |
+| status | Integer | 是 | 用户状态:0 正常,1 禁用,2 审核中,3 审核拒绝,4 已注销 |
+| mobile | String | 否 | 手机号码 |
+| mobile_confirmed | Integer | 否 | 手机号验证状态:0 未验证 1 已验证,未验证用户不可登录 |
+| email | String | 否 | 邮箱地址 |
+| email_confirmed | Integer | 否 | 邮箱验证状态:0 未验证 1 已验证,未验证用户不可登录 |
+| avatar | String | 否 | 头像地址 |
+| wx_unionid | String | 否 | 微信unionid |
+| wx_openid | Object | 否 | 微信各个平台openid |
+| ali_openid | String | 否 | 支付宝平台openid |
+| comment | String | 否 | 备注 |
+| realname_auth | Object | 否 | 实名认证信息 |
+| register_date | Timestamp | 否 | 注册时间 |
+| register_ip | String | 否 | 注册时 IP 地址,`uni-id 3.3.14`起移至register_env内 |
+| last_login_date | Timestamp | 否 | 最后登录时间 |
+| last_login_ip | String | 否 | 最后登录时 IP 地址 |
+| login_ip_limit | Array | 否 | 登录 IP 限制 |
+| inviter_uid | Array | 否 | 邀请人uid,按层级从下往上排列的uid数组,即第一个是直接上级|
+| my_invite_code | String | 否 | 用户自己的邀请码 |
+| role | Array | 否 | 用户角色列表,由role_id组成的数组 |
+| register_env | Object | 否 | 用户注册时的环境信息,新增于`uni-id 3.3.14` |
+
+**注意**
+
+- 最后登录时间、IP,并非只有登录操作会修改,token刷新时也会修改最后登录时间、ip。应用启动时若token有效则不会触发登录行为,也不会更新本值。
**wx_openid字段定义**
@@ -3100,6 +3204,21 @@ const res = await uniID.forbidAppLogin({
| company | String | 否 | 公司名称 |
| title | String | 否 | 职位 |
+**register_env字段定义**
+
+**注意:调用addUser添加的用户无此字段**
+
+| 字段 | 类型 | 必填 | 描述 |
+|-- |-- |-- |-- |
+|appid | String|否 |注册时的客户端appId |
+|uni_platform |String |否 |注册时的客户端平台,如h5、app、mp-weixin等 |
+|app_name |String |否 |注册时的客户端名称 |
+|app_version |String |否 |注册时的客户版本 |
+|app_version_code |String |否 |注册时的客户版本号 |
+|channel |String |否 |注册时的客户端启动场景(小程序)或应用渠道(app) |
+|client_ip |String |否 |注册时的客户端IP |
+
+
用户集合示例:
```