提交 196a3c81 编写于 作者: DCloud_JSON's avatar DCloud_JSON

将uni-id相关文档迁移到uni-id 文件夹内

上级 f66e342a
......@@ -92,6 +92,11 @@ const routerMap = {
'/use-html5plus': '/tutorial/use-html5plus.html',
'/m3w': '/uniCloud/uni-portal.html',
'/tutorial/syntax-uts': '/uts/',
'/uniCloud/uni-id-summary': '/uniCloud/uni-id/summary.html',
'/uniCloud/uni-id-pages': '/uniCloud/uni-id/redirect.md',
'/uniCloud/uni-id-common': '/uniCloud/uni-id/cloud-common.html',
'/uniCloud/uni-id': '/uniCloud/uni-id/old.html',
}
export default ({ fullPath, path, hash }) => {
......
......@@ -47,12 +47,12 @@
* [腾讯云权限管理](policy-tcb.md)
* [阿里云CDN安全策略](cdn-security-policy.md)
* uni-id用户体系
* [综述](uni-id-summary.md)
* [客户端-uni-app](uni-id-app.md)
* [客户端-uni-app x](uni-id-app-x.md)
* [云对象](uni-id-co.md)
* [uni-id-common](uni-id-common.md)
* [老版uni-id 3.x文档](uni-id.md)
* [综述](./uni-id/summary.md)
* [客户端-uni-app](./uni-id/app.md)
<!-- * [客户端-uni-app x](./uni-id/app-x.md) -->
* [云对象](./uni-id/cloud-object.md)
* [uni-id-common](./uni-id/cloud-common.md)
* [老版uni-id 3.x文档](./uni-id/old.md)
* uni手机号一键登录
* [费用说明](uni-login/price.md)
* [开通服务](uni-login/service.md)
......
此文档已拆分为:
- uni-id-pages(适用于uni-app的uni-id客户端)[详情查看](/docs/uniCloud/uni-id-app.md)
- uni-id-pages-x(适用于[uni-app x](/docs/uni-app-x/README.md)的uni-id客户端)[详情查看](/docs/uniCloud/uni-id-app-x.md)
- uni-id-co(uni-id 的云对象)[详情查看](/docs/uniCloud/uni-id-co.md)
\ No newline at end of file
# uni-id-pages-x
> uni-id-pages-x 是 uni-id-pages 的[uni-app x](/docs/uni-app-x/README.md)版,目前 uni-app x仅支持Android 端
> uni-id-pages-x 是 uni-id-pages 的[uni-app x](uni-app-x/README.md)版,目前 uni-app x仅支持Android 端
`uni-id-pages-x`,是`uni-id`体系的一部分。
......@@ -37,7 +37,7 @@
## 目录结构
<pre v-pre="" data-lang="">
<code class="lang-" style="padding:0">
├─uni_modules 存放[uni_module](/uni_modules)规范的插件。
├─uni_modules 存放uni_module规范的插件。
│ ├─其他module
│ └─uni-id-pages-x
│ ├─uniCloud
......@@ -227,7 +227,7 @@ export default {
更多合规问题[详情参考](https://uniapp.dcloud.io/tutorial/android-store.html#app%E5%9B%A0%E5%90%88%E8%A7%84%E9%97%AE%E9%A2%98%E6%97%A0%E6%B3%95%E4%B8%8A%E6%9E%B6)
推荐使用:HBuilderX编辑器,以markdown文档格式编辑《隐私政策和用户使用协议》,通过在文档中鼠标右键[一键分享](https://hx.dcloud.net.cn/Tutorial/extension/markdown_share)上传到[前端网页托管](hosting.md)获得链接
推荐使用:HBuilderX编辑器,以markdown文档格式编辑《隐私政策和用户使用协议》,通过在文档中鼠标右键[一键分享](https://hx.dcloud.net.cn/Tutorial/extension/markdown_share)上传到[前端网页托管](../hosting.md)获得链接
#### 密码强度@strength
......@@ -252,4 +252,4 @@ uni.navigateTo({
})
```
配套使用[uniIdRouter](uni-id-summary.md#uni-id-router);当用户未登录,但访问了你配置的需强制登录的页面,或接口提示token无效或过期(响应体以TOKEN_INVALID开头)时 会自动重定向到登录页面。
\ No newline at end of file
配套使用[uniIdRouter](summary.md#uni-id-router);当用户未登录,但访问了你配置的需强制登录的页面,或接口提示token无效或过期(响应体以TOKEN_INVALID开头)时 会自动重定向到登录页面。
\ No newline at end of file
......@@ -40,7 +40,7 @@
## 目录结构
<pre v-pre="" data-lang="">
<code class="lang-" style="padding:0">
├─uni_modules 存放[uni_module](/uni_modules)规范的插件。
├─uni_modules 存放uni_module规范的插件。
│ ├─其他module
│ └─uni-id-pages
│ ├─uniCloud
......@@ -265,7 +265,7 @@ export default {
更多合规问题[详情参考](https://uniapp.dcloud.io/tutorial/android-store.html#app%E5%9B%A0%E5%90%88%E8%A7%84%E9%97%AE%E9%A2%98%E6%97%A0%E6%B3%95%E4%B8%8A%E6%9E%B6)
推荐使用:HBuilderX编辑器,以markdown文档格式编辑《隐私政策和用户使用协议》,通过在文档中鼠标右键[一键分享](https://hx.dcloud.net.cn/Tutorial/extension/markdown_share)上传到[前端网页托管](hosting.md)获得链接
推荐使用:HBuilderX编辑器,以markdown文档格式编辑《隐私政策和用户使用协议》,通过在文档中鼠标右键[一键分享](https://hx.dcloud.net.cn/Tutorial/extension/markdown_share)上传到[前端网页托管](../hosting.md)获得链接
#### 接入各类服务(如微信登录服务)的应用id@appid
......@@ -319,4 +319,4 @@ uni.navigateTo({
})
```
可以配套使用[uniIdRouter](uni-id-summary.md#uni-id-router);当用户未登录,但访问了需强制登录的页面,或接口提示token无效或过期(响应体以TOKEN_INVALID开头)时均需要打开登录页面。你需要把以上两个路径路径定义为`loginPage`
\ No newline at end of file
可以配套使用[uniIdRouter](summary.md#uni-id-router);当用户未登录,但访问了需强制登录的页面,或接口提示token无效或过期(响应体以TOKEN_INVALID开头)时均需要打开登录页面。你需要把以上两个路径路径定义为`loginPage`
\ No newline at end of file
......@@ -2,19 +2,19 @@
> HBuilderX 3.5.0+ 支持
`云函数公共模块`是不同云函数共享代码的一种方式。如果你不了解什么是`云函数公共模块`,请另读文档[公共模块](cf-common.md)
`云函数公共模块`是不同云函数共享代码的一种方式。如果你不了解什么是`云函数公共模块`,请另读文档[公共模块](../cf-common.md)
`uni-id-common``uni-id`体系中用于token管理的公共模块。
[旧版本uni-id公共模块](uniCloud/uni-id.md)是一个大而全的公共模块,不适用被众多云函数引用。
[旧版本uni-id公共模块](old.md)是一个大而全的公共模块,不适用被众多云函数引用。
新版的`uni-id-common`仅包含token校验、生成及刷新功能。而用户注册、登录、忘记密码等实现都挪到了`uni-id-co`云对象中(该云对象内置于[uni-id-pages](uniCloud/uni-id-pages.md)
新版的`uni-id-common`仅包含token校验、生成及刷新功能。而用户注册、登录、忘记密码等实现都挪到了[uni-id-co](cloud-object.md)云对象中
这样不仅减小了公共模块的体积,也简化了学习成本。
从HBuilderX 3.5起,新建uniCloud项目时,会自动加载 `uni-id-common` 依赖。也就是 `uni-id-common` 默认内置在每个项目中。
一般开发者无需了解`uni-id-common`公共模块的API,直接使用[uni-id-pages](uniCloud/uni-id-pages.md)云端一体页面模板即可。
一般开发者无需了解`uni-id-common`公共模块的API,直接使用[uni-id-pages](redirect.md)云端一体页面模板即可。
如果想了解`uni-id-common`公共模块内部实现,可以阅读本章节。
......@@ -26,7 +26,7 @@
用法:`uniID.createInstance(Object CreateInstanceOptions);`
CreateInstanceOptions内可以传入云函数context,也可以传入clientInfo参数,作用和context类似。方便在云对象内获取clientInfo后直接传入,[什么是云对象?](uniCloud/cloud-obj.md)
CreateInstanceOptions内可以传入云函数context,也可以传入clientInfo参数,作用和context类似。方便在云对象内获取clientInfo后直接传入,[什么是云对象?](../cloud-obj.md)
```js
// 云函数代码,传入context
......@@ -65,7 +65,7 @@ module.exports = {
默认情况下`uni-id-common`某些接口会自动从全局context内获取客户端的PLATFORM(平台,如:app、h5、mp-weixin)等信息。
在云函数[单实例多并发](cf-functions.md?id=concurrency)的场景下可能无法正确获取(全局对象会被后面的请求覆盖,可能会导致前面一次请求使用了后面一次请求的PLATFORM信息)。因此推荐在开启云函数单实例多并发后,自行为uni-id传入context。
在云函数[单实例多并发](../cf-functions.md?id=concurrency)的场景下可能无法正确获取(全局对象会被后面的请求覆盖,可能会导致前面一次请求使用了后面一次请求的PLATFORM信息)。因此推荐在开启云函数单实例多并发后,自行为uni-id传入context。
此外云函数url化时无法获取客户端信息,也需要使用这种方式将客户端信息传入uni-id。
......
......@@ -26,7 +26,7 @@ const uniIdCo = uniCloud.importObject('uni-id-co')
### 公共响应参数@co-public-response
`uni-id-co`所有api返回值均满足[uniCloud响应体规范](cf-functions.md#resformat)
`uni-id-co`所有api返回值均满足[uniCloud响应体规范](../cf-functions.md#resformat)
返回值示例
......@@ -47,7 +47,7 @@ const uniIdCo = uniCloud.importObject('uni-id-co')
- 需要校验token的接口在token即将过期时也会返回newToken,token即将过期的阈值由开发者自行配置
### 适配URL化@adapter-http
`uni-id-pages@1.0.29`版本起支持URL化 [什么是URL化](uniCloud/http.html#cloudobject)
`uni-id-pages@1.0.29`版本起支持URL化 [什么是URL化](../http.md#cloudobject)
调用规范:
1. HTTP 请求头中的`Content-Type`必须为`application/json`,请求方法必须是`POST`, 如不满足条件将会返回 `uni-id-unsupported-request` 错误码
......@@ -429,8 +429,8 @@ await uniIdCo.loginByWeixin({
- 支持的登录方式:微信小程序、微信公众号、App、web站微信扫码登录
- 微信登录会自动保存用户的openid,在`uni-id-pages 1.0.8`及更高版本在存储openid时会同时存储一份以当前应用的Appid(manifest.json内的DCloud AppId)为key的openid,见下方关于openid的说明。
- 如果有多个应用同时使用微信小程序登录,且希望用户身份不隔离请确保这些应用在微信小程序平台为同一主体所有,即保证不同应用可以获取同样的unionid
- `uni-id-pages 1.0.8`及以上版本会使用uni-open-bridge-common保存`session_key`(微信小程序登录)、`access_token`(微信公众号登录、微信App登录)这些信息,但是为了兼容旧版逻辑仍在用户表存储了一份副本。详细说明参考:[自动保存用户sessionKey、accessToken等信息](uni-id-summary.md#save-user-token)
- - 如果开发者在其他应用未使用 [uni-open-bridge-common](/uniCloud/uni-open-bridge.md) 管理 access_token 等信息,可能会造成 access_token 冲突。
- `uni-id-pages 1.0.8`及以上版本会使用uni-open-bridge-common保存`session_key`(微信小程序登录)、`access_token`(微信公众号登录、微信App登录)这些信息,但是为了兼容旧版逻辑仍在用户表存储了一份副本。详细说明参考:[自动保存用户sessionKey、accessToken等信息](summary.md#save-user-token)
- - 如果开发者在其他应用未使用 [uni-open-bridge-common](../uni-open-bridge.md) 管理 access_token 等信息,可能会造成 access_token 冲突。
**关于openid的说明**
`uni-id-pages 1.0.7`及之前的版本会将微信的openid存为如下格式
......@@ -498,7 +498,7 @@ await uniIdCo.loginByQQ({
- 支持的登录方式:QQ小程序、QQ App
- QQ登录会自动保存用户的openid,在`uni-id-pages 1.0.8`及更高版本在存储openid时会同时存储一份以当前应用的Appid(manifest.json内的DCloud AppId)为key的openid,见下方关于openid的说明。
- 如果有多个应用同时使用QQ小程序登录,且希望用户身份不隔离请确保这些应用在QQ小程序平台为同一主体所有,即保证不同应用可以获取同样的unionid
- `uni-id-pages 1.0.8`及以上版本会使用uni-open-bridge-common保存session_key(QQ小程序登录)、access_token(QQ App登录)这些信息,但是为了兼容旧版逻辑仍在用户表存储了一份副本。详细说明参考:[自动保存用户sessionKey、accessToken等信息](uni-id-summary.md#save-user-token)
- `uni-id-pages 1.0.8`及以上版本会使用uni-open-bridge-common保存session_key(QQ小程序登录)、access_token(QQ App登录)这些信息,但是为了兼容旧版逻辑仍在用户表存储了一份副本。详细说明参考:[自动保存用户sessionKey、accessToken等信息](summary.md#save-user-token)
**关于openid的说明**
......@@ -828,7 +828,7 @@ await uniIdCo.bindWeixin({
**注意**
- 仅在用户token即将过期时返回新newToken
- 如果开发者在其他应用未使用 [uni-open-bridge-common](/uniCloud/uni-open-bridge.md) 管理 access_token 等信息,可能会造成 access_token 冲突。
- 如果开发者在其他应用未使用 [uni-open-bridge-common](../uni-open-bridge.md) 管理 access_token 等信息,可能会造成 access_token 冲突。
#### 绑定QQ@bind-qq
接口名:bindQQ
......@@ -1241,7 +1241,7 @@ await uniIdCo.getRealNameInfo({
**注意**
在uni-id-pages中默认启用敏感数据加解密,如果开发者没有使用uni-id提供的[敏感信息加密](uniCloud/uni-id-summary.md#sensitive-info-encrypt)功能,请将`decryptData`参数改为`false`,返回原始信息
在uni-id-pages中默认启用敏感数据加解密,如果开发者没有使用uni-id提供的[敏感信息加密](summary.md#sensitive-info-encrypt)功能,请将`decryptData`参数改为`false`,返回原始信息
### 安全验证@verifier
......@@ -1261,7 +1261,7 @@ await uniIdCo.createCaptcha({
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|scene |string |是 |图形验证码使用场景,务必确保使用验证码的场景和生成验证码时传的场景参数相匹配,否则会校验不通过,参考:[图形验证码场景](uni-id-summary.md#captcha-scene) |
|scene |string |是 |图形验证码使用场景,务必确保使用验证码的场景和生成验证码时传的场景参数相匹配,否则会校验不通过,参考:[图形验证码场景](summary.md#captcha-scene) |
**返回值**
......@@ -1287,7 +1287,7 @@ await uniIdCo.refreshCaptcha({
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|scene |string |是 |图形验证码使用场景,参考:[图形验证码场景](uni-id-summary.md#captcha-scene) |
|scene |string |是 |图形验证码使用场景,参考:[图形验证码场景](summary.md#captcha-scene) |
**返回值**
......@@ -1302,7 +1302,7 @@ await uniIdCo.refreshCaptcha({
发送短信功能需要以下前置工作
1.[开发者中心](https://dev.dcloud.net.cn)开通短信服务,并申请短信模板
2. 在uni-id的配置文件里面添加验证码使用场景对应的短信模板信息,参考:[uni-id配置文件](uni-id-summary.md#config)
2. 在uni-id的配置文件里面添加验证码使用场景对应的短信模板信息,参考:[uni-id配置文件](summary.md#config)
接口名:sendSmsCode
......@@ -1322,7 +1322,7 @@ await uniIdCo.sendSmsCode({
|-- |-- |-- |-- |
|mobile |string |是 |手机号码 |
|captcha|string |是 |图形验证码 |
|scene |string |是 |短信验证码使用场景,务必确保使用验证码的场景和发送验证码时传的场景参数相匹配,否则会校验不通过,参考:[短信验证码使用场景](uni-id-summary.md#sms-scene) |
|scene |string |是 |短信验证码使用场景,务必确保使用验证码的场景和发送验证码时传的场景参数相匹配,否则会校验不通过,参考:[短信验证码使用场景](summary.md#sms-scene) |
**返回值**
......@@ -1420,7 +1420,7 @@ await uniIdCo.setPushCid({
#### 微信安全网络握手@secure-network-handshake-by-weixin
此接口用于微信小程序端安全网络的握手,安全网络相关文档请参考:[安全网络](secure-network.md)
此接口用于微信小程序端安全网络的握手,安全网络相关文档请参考:[安全网络](../secure-network.md)
一般无需通过uniCloud.importObject方式调用,在客户端调用`uniCloud.initSecureNetworkByWeixin()`时会通过此接口获取会话相关信息。
......@@ -1456,7 +1456,7 @@ await uniIdCo.addUser({
|mobile |string |否 |手机号 |
|email |string |否 |邮箱 |
|tags |array |否 |用户标签 |
|status |number |否 |用户状态,参考:[用户状态](uni-id-summary.md#user-status)|
|status |number |否 |用户状态,参考:[用户状态](summary.md#user-status)|
**返回值**
......@@ -1500,7 +1500,7 @@ await uniIdCo.updateUser({
| mobile | string | 否 | 手机号 |
| email | string | 否 | 邮箱 |
| tags | array | 否 | 用户标签 |
| status | number | 否 | 用户状态,参考:[用户状态](uni-id-summary.md#user-status) |
| status | number | 否 | 用户状态,参考:[用户状态](summary.md#user-status) |
**返回值**
......@@ -1619,7 +1619,7 @@ await uniIdCo.setAuthorizedApp({
适合自己有用户系统,同时需要使用依赖UniId的业务,将自身系统的用户账号导入uniId,为其创建一个对应uniId的账号,使得该账号可以使用依赖uniId的系统及功能。
由于此方案的接口不需要密码验证,开发者务必要保证接口只能在服务端调用,同时要求在请求时计算签名来保证安全。
联登相关接口只支持HTTP方式调用,调用时需要携带鉴权签名值,查看[URL化请求鉴权签名计算](uni-id-pages.md#http-reqeust-auth)
联登相关接口只支持HTTP方式调用,调用时需要携带鉴权签名值,查看[URL化请求鉴权签名计算](#http-reqeust-auth)
#### 注册用户@external-register
......@@ -1762,7 +1762,7 @@ Cache-Control: no-cache
| mobile | string | 否 | 手机号 |
| email | string | 否 | 邮箱 |
| tags | array | 否 | 用户标签 |
| status | number | 否 | 用户状态,参考:[用户状态](uni-id-summary.md#user-status) |
| status | number | 否 | 用户状态,参考:[用户状态](summary.md#user-status) |
| avatar | string | 否 | 用户头像 |
| gender | number | 否 | 用户性别;0 未知 1 男性 2 女性 |
......@@ -1899,7 +1899,7 @@ module.exports = {
## 登录服务开通与配置
服务端`uni-id`的密钥信息统一在`uni-config-center`中配置,路径:`uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json`
以下简称:`uni-id配置文件`,完整的配置信息[详情查看](uni-id-summary.md#config)
以下简称:`uni-id配置文件`,完整的配置信息[详情查看](summary.md#config)
### 一键登录
一键登录是运营商提供的、比短信验证码更方便、更安全、更便宜的方案。[详见](https://uniapp.dcloud.net.cn/univerify)
......@@ -1947,7 +1947,7 @@ uni-id-pages已全面支持:app、小程序、web(uni-id-pages 版本号1.0.
- web端:打开`/uni_modules/uni-id-pages/config.js` -> `appid` -> `weixin``h5`节点配置微信公众号的appid,`web`节点配置微信开放平台创建的网站应用appid
### 服务端配置
* 服务端`uni-id`的密钥信息统一在`uni-config-center`中配置,路径:`uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json`,完整的配置信息[详情查看](uni-id-summary.md#config)
* 服务端`uni-id`的密钥信息统一在`uni-config-center`中配置,路径:`uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json`,完整的配置信息[详情查看](summary.md#config)
### web端微信登录专题
......@@ -2054,7 +2054,7 @@ exports.main = async (event, context) => {
## URL化请求鉴权签名@http-reqeust-auth
> `uni-id-co@1.1.10`及以上版本支持使用`uni-cloud-s2s`进行请求签名验证,`uni-cloud-s2s`使用方式[详见](/uniCloud/uni-cloud-s2s.md)
> `uni-id-co@1.1.10`及以上版本支持使用`uni-cloud-s2s`进行请求签名验证,`uni-cloud-s2s`使用方式[详见](../uni-cloud-s2s.md)
>
> `uni-id-co`请求鉴权签名与`uni-cloud-s2s`不能同时存在,如果存在`uni-cloud-s2s`,则会优先使用`uni-cloud-s2s`进行请求签名验证
......
......@@ -3822,7 +3822,7 @@ uni-id 3.1.0版本主要有以下两个调整
#### 补齐用户dcloud_appid字段@makeup-dcloud-appid
此调整详情见:[隔离不同端用户](uniCloud/uni-id.md?id=isolate-user)
此调整详情见:[隔离不同端用户](#isolate-user)
> uni-id3.3.0以下版本升级到3.3.0及以上版本时,需要参照本章节补齐用户数据
......
此文档已拆分为:
- uni-id-pages(适用于uni-app的uni-id客户端)[详情查看](./app.md)
- uni-id-pages-x(适用于[uni-app x](/uni-app-x/README.md)的uni-id客户端)[详情查看](./app-x.md)
- uni-id-co(uni-id 的云对象)[详情查看](./cloud-object.md)
\ No newline at end of file
本文档适用于`uni-id 4.0.0`及以上版本,需 HBuilderX 3.5.0 及以上版本。旧版本文档请访问:[uni-id 3.x.x 文档](uni-id.md)
本文档适用于`uni-id 4.0.0`及以上版本,需 HBuilderX 3.5.0 及以上版本。旧版本文档请访问:[uni-id 3.x.x 文档](old.md)
## 需求背景
......@@ -10,7 +10,7 @@
`uni-id``uniCloud`开发者提供了开源、易用、安全、丰富、可扩展的用户管理框架。
[clientDB](clientDB.md)[DB Schema](schema.md)[uni-starter](https://ext.dcloud.net.cn/plugin?id=5057)[uni-admin](admin.md),这些产品都基于`uni-id`的账户体系。可以说`uni-id`是uniCloud不可或缺的基础能力。
[clientDB](../clientDB.md)[DB Schema](../schema.md)[uni-starter](https://ext.dcloud.net.cn/plugin?id=5057)[uni-admin](../admin.md),这些产品都基于`uni-id`的账户体系。可以说`uni-id`是uniCloud不可或缺的基础能力。
## uni-id 的价值
......@@ -69,7 +69,7 @@
1. 云数据库的uni-id相关表
数据库是一个系统的核心,uni-id首先规范化了十几张用户相关的[opendb数据表](opendb.md)
数据库是一个系统的核心,uni-id首先规范化了十几张用户相关的[opendb数据表](../opendb.md)
其中最为重要的4张opendb表,如下:
- 用户表 [uni-id-users](https://gitee.com/dcloud/opendb/blob/master/collection/uni-id-users/collection.json)
......@@ -89,9 +89,9 @@ uni-id-common公共模块包含了账户体系服务端的核心权限、token
uniCloud众多功能(如`DB Schema`的权限、uni-id-co)也都依赖 uni-id-common。
[详见](uni-id-common.md)
[详见](cloud-common.md)
3. 云端[uni-config-center](uni-config-center.md)下的uni-id配置
3. 云端[uni-config-center](../uni-config-center.md)下的uni-id配置
`uni-id`在云端有很多配置,比如密码加密秘钥、短信和微信登录的appsecret等等。在`uni-config-center`下的`uni-id`目录下的config.json里存放着这些配置。
......@@ -105,16 +105,16 @@ uni-app与uniCloud搭配且使用uni-id,登录后自动下发token、网络传
uni-app客户端还有一批uni-id相关的内置API:
- uniIDHasRole:判断当前用户是否拥有某角色。[详情](/api/global.md#uniidhasrole)
- uniIDHasPermission:判断当前用户是否拥有某权限。[详情](/api/global.md#uniidhaspermission)
- uniCloud.getCurrentUserInfo():客户端获取当前用户信息。[详情](client-sdk.md#client-getcurrentuserinfo)
- uniCloud.getCurrentUserInfo():客户端获取当前用户信息。[详情](../client-sdk.md#client-getcurrentuserinfo)
5. 云端一体页面模板 [uni-id-pages](uni-id-pages.md)(含uni-id-co)
5. 云端一体页面模板 [uni-id-pages](redirect.md)(含uni-id-co)
基于uni-id-common,DCloud还提供了一组完整的前端页面和后端[云对象](cloud-obj.md) ,合称`uni-id-pages`
基于uni-id-common,DCloud还提供了一组完整的前端页面和后端[云对象](cloud-object.md) ,合称`uni-id-pages`
uni-id-pages的功能包括:用户注册(含用户协议、隐私协议)、退出、修改密码、忘记密码等各种功能,同时适配PC宽屏和各种手机平台(App、H5、小程序)。
此外,DCloud的其他产品也为uni-id提供了众多支持:
- [uni-admin后台管理框架](admin.md),为uni-id提供了现成的用户、角色、权限的后台管理功能,以及注册用户统计报表。
- [uni-admin后台管理框架](../admin.md),为uni-id提供了现成的用户、角色、权限的后台管理功能,以及注册用户统计报表。
以上全部是开源的。
......@@ -124,15 +124,15 @@ uni-id-pages的功能包括:用户注册(含用户协议、隐私协议)
老的公共模块uni-id是一个大而全的账户管理公共模块,体积太大,不适合被其他云函数引用。比如某个业务云函数需要校验用户token,引用的uni-id公共模块还包含了忘记密码的代码,很浪费资源。
在云对象发布之前,DCloud基于云函数方式提供了uni-id-cf。但在HBuilderX 3.5 以后,推荐使用基于云对象的[uni-id-pages](uni-id-pages.md),代码更简单清晰。
在云对象发布之前,DCloud基于云函数方式提供了uni-id-cf。但在HBuilderX 3.5 以后,推荐使用基于云对象的[uni-id-pages](redirect.md),代码更简单清晰。
从HBuilder 3.5起,[uni-id](https://ext.dcloud.net.cn/plugin?id=2116)和uni-id-cf都将被淘汰,不再更新。老的公共模块uni-id被拆开,变成了[uni-id-common](uni-id-common.md)公共模块和uni-id-co云对象。
从HBuilder 3.5起,[uni-id](https://ext.dcloud.net.cn/plugin?id=2116)和uni-id-cf都将被淘汰,不再更新。老的公共模块uni-id被拆开,变成了[uni-id-common](cloud-common.md)公共模块和uni-id-co云对象。
uni-id-common很精简,只包括token和权限,适合被所有云函数引用。
uni-id-co则是一个更加比uni-id-cf更完善和规范的用户管理的云对象。
老版升级指南,[详见](uni-id-pages.md#m-to-co)
老版升级指南,[详见](cloud-object.md#m-to-co)
......@@ -142,7 +142,7 @@ uni-id-common的插件市场地址为:[uni-id-common插件](https://ext.dcloud
一般推荐直接使用uni-starter项目模板来开始开发,或者在新项目里导入uni-id-pages页面模板来使用。
uni-id云端的配置是依赖[uni-config-center](uni-config-center.md)公用模块的,在工程目录uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json。(如未安装uni-config-center需安装,如缺少目录需手动创建)
uni-id云端的配置是依赖[uni-config-center](../uni-config-center.md)公用模块的,在工程目录uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json。(如未安装uni-config-center需安装,如缺少目录需手动创建)
uni-id云端同时依赖了公共模块[uni-captcha](https://ext.dcloud.net.cn/plugin?id=4048),这个功能模块负责生成和校验验证码,进行人机验证。
......@@ -154,7 +154,7 @@ uni-id云端同时依赖了公共模块[uni-captcha](https://ext.dcloud.net.cn/p
你的应用采用什么方式注册登录?比如用户名密码、手机号+短信验证码、或者微信登录。
很多登录方式涉及三方服务,需要开通[短信验证码服务](send-sms.md)、开通[App一键登录](univerify.md)、或者向微信等申请登录的appid和appsecret信息。
很多登录方式涉及三方服务,需要开通[短信验证码服务](../send-sms.md)、开通[App一键登录](../univerify.md)、或者向微信等申请登录的appid和appsecret信息。
申请开通相关服务后,需要把配置信息填写在云端配置文件config.json中。
......@@ -381,8 +381,8 @@ uni-id云端会在login方法成功后自动返回token,uni-app前端框架会
## 用户角色权限@rbac
为什么需要角色权限管理?
- 企业管理系统,比如[uni-admin](admin.md),除了超级管理员,不同账号通常需根据职位、责任设定不同的系统权限。比如部门管理员、Hr。
- [clientDB](clientdb.md)允许前端直接操作数据库,但部分字段应该是系统计算或管理员设置的,比如文章的阅读数、收藏数及是否加精置顶,这些字段不允许普通用户在前端通过clientDB直接修改,此时也需要通过权限控制来保证系统的安全稳定。
- 企业管理系统,比如[uni-admin](../admin.md),除了超级管理员,不同账号通常需根据职位、责任设定不同的系统权限。比如部门管理员、Hr。
- [clientDB](../clientdb.md)允许前端直接操作数据库,但部分字段应该是系统计算或管理员设置的,比如文章的阅读数、收藏数及是否加精置顶,这些字段不允许普通用户在前端通过clientDB直接修改,此时也需要通过权限控制来保证系统的安全稳定。
`uni-id`基于经典的RBAC模型实现了角色权限系统。
......@@ -550,11 +550,11 @@ function hasPermission(token, permission) {
}
```
注意: **在uniCloud admin中,封装了可视化的用户、权限、角色的管理,新增删除修改均支持**,无需自己维护。[详见](admin.md#mutiladmin)
注意: **在uniCloud admin中,封装了可视化的用户、权限、角色的管理,新增删除修改均支持**,无需自己维护。[详见](../admin.md#mutiladmin)
## uni-id数据表@db-schema
`uni-id`的所有数据表,都在[opendb](opendb.md)规范中。
`uni-id`的所有数据表,都在[opendb](../opendb.md)规范中。
在unicloud [web控制台](https://unicloud.dcloud.net.cn/) 新建数据表时,可以从`uni-id`的模板分类里找到下面的表,并一键创建这些表。HBuilderX 3.4.11起新建 DB Schema 也有模板可选择。
......@@ -603,7 +603,7 @@ function hasPermission(token, permission) {
**wx_openid字段定义**
> opendb中uni-id-users表1.0.0调整为下面的结构,uni-id-co使用此标准。如何处理旧数据请参考:[自uni-id升级为uni-id-co+uni-id-common](uni-id-pages.md#m-to-co)
> opendb中uni-id-users表1.0.0调整为下面的结构,uni-id-co使用此标准。如何处理旧数据请参考:[自uni-id升级为uni-id-co+uni-id-common](cloud-common.md#m-to-co)
| 字段 | 类型 | 必填 | 描述 |
| ------- | ------| ---- | -------- |
......@@ -614,7 +614,7 @@ function hasPermission(token, permission) {
**qq_openid字段定义**
> opendb中uni-id-users表1.0.0调整为下面的结构,uni-id-co使用此标准。如何处理旧数据请参考:[自uni-id升级为uni-id-co+uni-id-common](uni-id-pages.md#m-to-co)
> opendb中uni-id-users表1.0.0调整为下面的结构,uni-id-co使用此标准。如何处理旧数据请参考:[自uni-id升级为uni-id-co+uni-id-common](cloud-common.md#m-to-co)
| 字段 | 类型 | 必填 | 描述 |
| ------- | ------| ---- | -------- |
......@@ -680,7 +680,7 @@ function hasPermission(token, permission) {
例:项目内只使用了微信登录,不使用其他登录方式,可以只保留`wx_unionid、wx_openid.mp`这些账号相关的索引,删除其他登录方式的索引(比如username、mobile)
不了解索引请参考:[索引](db-index.md)
不了解索引请参考:[索引](../db-index.md)
### 验证码表
......@@ -853,7 +853,7 @@ uniIdRouter 是一个运行在前端的、对前端页面访问权限路由进
以上代码,指定了登录页为首页`index`,然后将`list`页面和`detail`目录下的所有页面,设为需要登录才能访问。那么访问`list`页面和`detail`目录下的页面时,如果客户端未登录或登录状态过期(也就是uni_id_token失效),那么会自动跳转到`index`页面来登录。
与此功能对应的有两个uniCloud客户端api,`uniCloud.onNeedLogin()``uniCloud.offNeedLogin()`,开发者在监听onNeedLogin事件后,框架就不再自动跳转到登录页面,而是由开发者在onNeedLogin事件内自行处理。详情参考:[uniCloud.onNeedLogin](uniCloud/client-sdk.md?id=on-need-login)
与此功能对应的有两个uniCloud客户端api,`uniCloud.onNeedLogin()``uniCloud.offNeedLogin()`,开发者在监听onNeedLogin事件后,框架就不再自动跳转到登录页面,而是由开发者在onNeedLogin事件内自行处理。详情参考:[uniCloud.onNeedLogin](../client-sdk.md?id=on-need-login)
自动跳转到登录页面时会携带uniIdRedirectUrl参数,其值为`encodeURIComponent(${跳转前的页面(包含路径和参数的完整页面地址)})`,如果希望用户登录后跳转回之前的页面,可以使用此参数实现。
......@@ -951,7 +951,7 @@ module.exports = {
- pages.json内有`uniIdRouter`节点上述逻辑才会生效,自HBuilderX 3.5.0起创建空项目模板会自动配置空的`uniIdRouter`节点
- uniIdRouter底层使用navigateTo、redirectTo、reLaunch、switchTab的拦截器进行页面跳转拦截,不会拦截进入首页,web端和app端会拦截原生tabbar点击,其他端不会拦截原生tabbar点击。
一般tabbar页面都不做自动跳转,而是在页面内再提供登录按钮。比如tabbar上有购物车或个人中心,点击购物车后在购物车页面内部会放一个提示语和按钮,告知用户需要登录。
在页面内判断用户是否登录,使用API[uniCloud.getCurrentUserInfo()](client-sdk.md#client-getcurrentuserinfo)
在页面内判断用户是否登录,使用API[uniCloud.getCurrentUserInfo()](../client-sdk.md#client-getcurrentuserinfo)
## 云端错误码@errcode
......@@ -1003,7 +1003,7 @@ uni-id-user表中有一个数组型字段`dcloud_appid`,可以存贮这个用
uni-id 3.3.0版本起用户注册时会自动在用户表的记录内标记为注册应用对应的用户,如果没有单独授权登录其他应用的话则只能登录这个应用。即在乘客端应用注册的,默认只能在乘客端应用登录。
如何授权登录其他应用请参考:[授权、禁止用户在特定客户端应用登录](uni-id-pages.md#authorize-app)
如何授权登录其他应用请参考:[授权、禁止用户在特定客户端应用登录](cloud-object.md#authorize-app-login)
需要注意的是客户端APPID信息是由端上传上来的,并非完全可信,尽量在入口处进行校验。例:
......@@ -1234,7 +1234,7 @@ uni-id-co在微信、QQ登录或注册时会自动保存用户的sessionKey、ac
}
```
此结构无法满足多应用同一平台关联同一服务空间且允许用户跨应用登录的场景。因此在`uni-id-pages 1.0.8`及更高版本对此做出了调整,改为使用[uni-open-bridge-common](uni-open-bridge.md#uni-open-bridge-common)存储用户在三方平台的凭据信息。同时为了兼容旧版本上述third_party字段仍存有这些信息。
此结构无法满足多应用同一平台关联同一服务空间且允许用户跨应用登录的场景。因此在`uni-id-pages 1.0.8`及更高版本对此做出了调整,改为使用[uni-open-bridge-common](../uni-open-bridge.md#uni-open-bridge-common)存储用户在三方平台的凭据信息。同时为了兼容旧版本上述third_party字段仍存有这些信息。
目前被`uni-id-co`保存的三方凭据有以下几种:
......@@ -1286,7 +1286,7 @@ beforeRegister在注册用户记录入库前触发。钩子会接收到如下参
|参数名 |类型 |说明 |
|-- |-- |-- |
|userRecord |Object |即将入库的用户记录 |
|clientInfo |Object |客户端信息,参考:[云对象 getClientInfo](cloud-obj.md#get-client-info) |
|clientInfo |Object |客户端信息,参考:[云对象 getClientInfo](../cloud-obj.md#get-client-info) |
以为__UNI_123123这个应用注册的用户添加"teacher"角色为例,beforeRegister钩子示例如下
......@@ -1316,7 +1316,7 @@ module.exports = {
uni-id 默认使用了 `hmac-sha1` 加密算法对密码进行加密,自 `uni-id-pages@1.0.28` 版本起新增了 `hmac-sha256` 加密算法,开发者可以自己需求选择不同的算法,推荐使用 `hmac-sha256`算法。
`uni-config-center/uni-id/config.json` 中配置, [uni-id/config.json说明](uni-id-summary.html#config)
`uni-config-center/uni-id/config.json` 中配置, [uni-id/config.json说明](summary.md#config)
```json
{
......@@ -1329,7 +1329,7 @@ uni-id 默认使用了 `hmac-sha1` 加密算法对密码进行加密,自 `uni-
}
```
修改 passwordSecret [参考](uni-id-summary.html#modifysecret)
修改 passwordSecret [参考](summary.md#modifysecret)
#### 升级 hmac-256 加密算法指南
适用于 `uni-id-pages@1.0.28` 以下版本,
......@@ -1582,7 +1582,7 @@ module.exports = {
>
> 实人认证相关功能建议或问题,可以加入uni-im交流群进行讨论,[点此加入](https://im.dcloud.net.cn/#/?joinGroup=6445fc67bc1254655dcbf5f7)
基于[实人认证](/uniCloud/frv/intro.md)服务实现,可以实现用户刷脸核验真实身份,完成实名认证。
基于[实人认证](../frv/intro.md)服务实现,可以实现用户刷脸核验真实身份,完成实名认证。
目前仅APP端支持实名认证。
......@@ -1661,14 +1661,14 @@ uni-id-pages 中内置了实名认证页面`uni-id-pages/pages/userinfo/realname
#### 接口参考
- 获取认证服务的 certifyId [uniIdCo.getFrvCertifyId](uniCloud/uni-id-pages.md#get-frv-certify-id)
- 使用 certifyId 获取认证结果 [uniIdCo.getFrvAuthResult](uniCloud/uni-id-pages.md#get-frv-auth-result)
- 获取用户实名信息(脱敏)[uniIdCo.getRealNameInfo](uniCloud/uni-id-pages.md#get-realname-info)
- 获取认证服务的 certifyId [uniIdCo.getFrvCertifyId](cloud-object.md#get-frv-certify-id)
- 使用 certifyId 获取认证结果 [uniIdCo.getFrvAuthResult](cloud-object.md#get-frv-auth-result)
- 获取用户实名信息(脱敏)[uniIdCo.getRealNameInfo](cloud-object.md#get-realname-info)
#### 敏感信息加密@sensitive-info-encrypt
用户的姓名、身份证号、实人认证照片属于用户隐私信息,为了防止隐私信息泄露,在数据存储上使用了对称加密`aes-256-cbc`算法对数据进行加密。
在前端页面需要使用时,例如”[获取用户实名信息](uniCloud/uni-id-pages.md#get-realname-info)“接口,只会返回脱敏后的数据,减少暴露风险,提高安全性。
在前端页面需要使用时,例如”[获取用户实名信息](cloud-object.md#get-realname-info)“接口,只会返回脱敏后的数据,减少暴露风险,提高安全性。
由于加密密钥`sensitiveInfoEncryptSecret`来源于`config.json`配置文件,强烈建议更换为自定义的字符串,不要使用默认的密钥。
密钥长度需要是32位的字符串。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册