From 6c5869dc8cedb1e9e9325e11f6893696a5ae3d0a Mon Sep 17 00:00:00 2001 From: chenruilong Date: Thu, 10 Nov 2022 11:55:58 +0800 Subject: [PATCH] docs: update uni-id-pages.md --- docs/uniCloud/uni-id-pages.md | 82 +++++++++++++++++++++++++++-------- 1 file changed, 65 insertions(+), 17 deletions(-) diff --git a/docs/uniCloud/uni-id-pages.md b/docs/uniCloud/uni-id-pages.md index 752feee6e..6d0f4a3c7 100644 --- a/docs/uniCloud/uni-id-pages.md +++ b/docs/uniCloud/uni-id-pages.md @@ -37,7 +37,7 @@ - 用户服务协议和隐私政策条款授权 -# 目录结构 +## 目录结构
 
 ├─uni_modules                                         存放[uni_module](/uni_modules)规范的插件。
@@ -103,10 +103,10 @@
 │        └─readme.md                                  插件自述文件
 
 
-完整的uni-app目录结构[详情查看](https://uniapp.dcloud.io/frame?id=%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84) +**完整的uni-app目录结构[详情查看](https://uniapp.dcloud.io/frame?id=%e7%9b%ae%e5%bd%95%e7%bb%93%e6%9e%84) -# 前端页面 -## 初始化 +## 前端页面 +### 初始化 需要在App.vue中初始化`uni-id-pages`的`init.js`文件 示例代码如下: @@ -128,7 +128,7 @@ ``` -## 配置@config +### 配置@config 路径:`/uni_modules/uni-id-pages/config.js` |字段 |类型 |描述 | @@ -261,7 +261,7 @@ export default { |medium |String |中:密码必须为字母、数字和特殊符号任意两种的组合,长度范围:8-16位之间| |weak |String |弱:密码必须包含字母和数字,长度范围:6-16位之间 | -## 页面介绍 +### 页面介绍 `uni-id-pages`包含:账号注册、免密登录、头像更换、修改昵称、绑定手机号码、找回密码、注销账号等页面。[插件地址](https://ext.dcloud.net.cn/plugin?name=uni-id-pages) 项目中常有打开登录页面的需求,这里对登录页面展开介绍;包括两类登录方式: @@ -281,7 +281,7 @@ uni.navigateTo({ 可以配套使用[uniIdRouter](uni-id-summary.md#uni-id-router);当用户未登录,但访问了需强制登录的页面,或接口提示token无效或过期(响应体以TOKEN_INVALID开头)时均需要打开登录页面。你需要把以上两个路径路径定义为`loginPage`。 -# 云对象(uni-id-co) +## 云对象(uni-id-co) uni-id-co是uni-id-pages的核心云对象,包含了诸多用户相关的接口。作为uni-id体系的一部分,uni-id-co也使用uni-id的配置文件(`cloudfunctions/common/uni-config-center/uni-id/config.json`)。**目前此云对象依赖了一些客户端信息,暂不支持url化调用,后续会提供url化方案。** @@ -291,7 +291,7 @@ uni-id-co是uni-id-pages的核心云对象,包含了诸多用户相关的接 const uniIdCo = uniCloud.importObject('uni-id-co') ``` -## 目录说明 +### 目录说明 ```text ├─common // 公用逻辑 @@ -305,7 +305,7 @@ const uniIdCo = uniCloud.importObject('uni-id-co') └─module // 分模块存放的云对象方法 ``` -## 公共响应参数@co-public-response +### 公共响应参数@co-public-response `uni-id-co`所有api返回值均满足[uniCloud响应体规范](cf-functions.md#resformat) @@ -327,7 +327,55 @@ const uniIdCo = uniCloud.importObject('uni-id-co') - 需要校验token的接口在token即将过期时也会返回newToken,token即将过期的阈值由开发者自行配置 -## API列表 +### 适配URL化@adapter-http +自`uni-id-pages@1.0.29`版本起支持URL化 [什么是URL化](uniCloud/http.html#cloudobject) + +调用规范: +1. HTTP 请求头中的`Content-Type`必须为`application/json`,请求方法必须是`POST`, 如不满足条件将会返回 `uni-id-unsupported-request` 错误码 +2. 请求体需按照以下格式: +```json +{ + "clientInfo": {}, + "uniIdToken": "", + "params": {} +} +``` +字段说明 + +|字段|说明| +|--|--| +|clientInfo|客户端信息; `uni.getSystemInfo`返回的字段| +|uniIdToken|用户Token; 用户登录后必填| +|params|API接口参数字段| + +假设已在uniCloud 控制台已设置URL化域名PATH,以PATH为`/http/uni-id-co`为例,演示登录示例: + +```javascript +uni.request({ + url: 'https://{云函数Url化域名}/http/uni-id-co/login', + method: 'POST', + data: { + clientInfo: uni.getSystemInfoSync(), + uniIdToken: '用户Token', + params: { + username:"username", + password:"password" + } + }, + header: { + 'Content-Type': 'application/json' + }, + success: (res) => { + // 返回值 + } +}) +``` + +**注意** + +请不要添加 Query 参数,URL化后将忽略 Query 参数 + +### API列表 |API |描述 | |-- |-- | @@ -1646,7 +1694,7 @@ await uniIdCo.setAuthorizedApp({ - 此接口为管理端接口 - 仅在用户token即将过期时返回新newToken -## 其他功能@extra-function +### 其他功能@extra-function ### 覆盖或新增校验规则@custom-validator @@ -1704,17 +1752,17 @@ 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) -## 一键登录 +### 一键登录 一键登录是运营商提供的、比短信验证码更方便、更安全、更便宜的方案。[详见](https://uniapp.dcloud.net.cn/univerify)。 - 使用本功能需要在[DCloud开发者中心 -> ](https://dev.dcloud.net.cn/pages/uniLogin/index)开通并充值 - 模块配置:`manifest.json`-->`App模块配置` -->`OAuth(登录鉴权)`-->` 一键登录`,点击后面的`开通配置`,在随后打开的web界面中,同意协议,并点击充值按钮充值。如只是测试,可以只充值1元钱。如果你已经确定包名,则可以在web界面点击“添加应用”,提交审核。这个是正式打包必须的。真机运行可以跳过此环节。记住页面上展示的`apiKey`和`apiSecret`,下一步需要用到。 - uni-id配置:`uni-id配置文件` --> `service` --> `univerify`,填写`appid`、`apiKey`和 `apiSecret`。`appid`就是`manifest`里的`appid`。`apiKey`和`apiSecret`则是从上一步的web界面得来的。 -## 微信登录@weixinLogin +### 微信登录@weixinLogin uni-id-pages已全面支持:app、小程序、web(uni-id-pages 版本号1.0.8起),三端的微信登录。 @@ -1791,18 +1839,18 @@ host文件路径: Windows系统一般为:`C:\Windows\System32\drivers\etc` 用HBuilderX打开hosts文件,在末尾添加一行 `127.0.0.1 你的域名`保存即可。 此时访问域名,如果就能看到和你的项目运行到浏览器一样的效果,说明已经成功了。 -## 苹果登录集成指南 +### 苹果登录集成指南 - 模块配置:`manifest.json` --> `App模块配置` --> OAuth(登录鉴权)勾选`苹果登录`,[IOS苹果授权登录参考文档](https://ask.dcloud.net.cn/article/36651)。如不发布到Appstore,不需要配置此项 - uni-id配置:`uni-id配置文件` --> `app` --> `oauth` --> `apple` 填写`bundleId`。 - 关联域配置:`manifest.json` --> `App常用其他设置` --> `iOS设置` --> `关联域(Associated Domains)` 填写配置 [参考教程](https://ask.dcloud.net.cn/article/36393)。如不发布到Appstore,不需要配置此项 -## 短信验证码 +### 短信验证码 为了方便开发调试,`uni-id-pages`未配置短信登录时,自动启动测试模式;直接使用:123456作为短信验证码即可。 - 使用本功能需要在[DCloud开发者中心 -> 短信验证码](https://dev.dcloud.net.cn/pages/sms/base)开通并充值 - 教程参考[短信服务开通指南](https://ask.dcloud.net.cn/article/37534) - 密钥配置:`uni-id配置文件` --> `service` --> `sms` 填写相关密钥信息。 -# 从老版uni-id公共模块升级到uni-id-pages +## 从老版uni-id公共模块升级到uni-id-pages 在HBuilderX 3.5之前,DCloud提供了一个公共模块[uni-id](https://ext.dcloud.net.cn/plugin?id=2116)(注意别和uni-id-common混淆)和一个示例性云函数uni-id-cf(集成在uni-starter和uni-admin中)。 -- GitLab