Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
取酒独倾
unidocs-zh
提交
23d0d7ae
U
unidocs-zh
项目概览
取酒独倾
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
23d0d7ae
编写于
6月 22, 2022
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: uni-id
上级
389b8807
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
86 addition
and
301 deletion
+86
-301
docs/collocation/pages.md
docs/collocation/pages.md
+1
-1
docs/uniCloud/_sidebar.md
docs/uniCloud/_sidebar.md
+1
-1
docs/uniCloud/client-sdk.md
docs/uniCloud/client-sdk.md
+3
-3
docs/uniCloud/uni-id-pages.md
docs/uniCloud/uni-id-pages.md
+40
-258
docs/uniCloud/uni-id-summary.md
docs/uniCloud/uni-id-summary.md
+41
-38
未找到文件。
docs/collocation/pages.md
浏览文件 @
23d0d7ae
...
...
@@ -17,7 +17,7 @@
|
[
leftWindow
](
/collocation/pages?id=leftwindow
)
|Object|否|大屏左侧窗口|H5|
|
[
topWindow
](
/collocation/pages?id=topwindow
)
|Object|否|大屏顶部窗口|H5|
|
[
rightWindow
](
/collocation/pages?id=rightwindow
)
|Object|否|大屏右侧窗口|H5|
|
[
uniI
D
Router
](
/uniCloud/uni-id-summary.md?id=uni-id-router
)
|Object|否|自动跳转相关配置,新增于HBuilderX 3.5.0||
|
[
uniI
d
Router
](
/uniCloud/uni-id-summary.md?id=uni-id-router
)
|Object|否|自动跳转相关配置,新增于HBuilderX 3.5.0||
以下是一个包含了所有配置选项的
`pages.json`
:
...
...
docs/uniCloud/_sidebar.md
浏览文件 @
23d0d7ae
...
...
@@ -40,8 +40,8 @@
*
[
腾讯云权限管理
](
uniCloud/policy-tcb.md
)
*
uni-id用户体系
*
[
综述
](
uniCloud/uni-id-summary.md
)
*
[
uni-id-common
](
uniCloud/uni-id-common.md
)
*
[
uni-id-pages
](
uniCloud/uni-id-pages.md
)
*
[
uni-id-common
](
uniCloud/uni-id-common.md
)
*
[
旧版本uni-id文档
](
uniCloud/uni-id.md
)
*
[
uni一键登录
](
uniCloud/univerify.md
)
*
[
发送短信
](
uniCloud/send-sms.md
)
...
...
docs/uniCloud/client-sdk.md
浏览文件 @
23d0d7ae
...
...
@@ -261,7 +261,7 @@ uniCloud.offResponse(logResponse)
> 新增于HBuilderX 3.5.0
用于监听客户端需要登录事件,此接口需要搭配uniI
DRouter使用,参考:
[
uniID
Router
](
uniCloud/uni-id.md?id=uni-id-router
)
用于监听客户端需要登录事件,此接口需要搭配uniI
dRouter使用,参考:
[
uniId
Router
](
uniCloud/uni-id.md?id=uni-id-router
)
代码示例:
...
...
@@ -283,7 +283,7 @@ interface OnNeedLoginEvent {
**注意**
-
开发者自定监听onNeedLogin事件后,uniI
D
Router的自动跳转登录页面功能会禁用,由开发者在
`onNeedLogin`
内自行处理跳转
-
开发者自定监听onNeedLogin事件后,uniI
d
Router的自动跳转登录页面功能会禁用,由开发者在
`onNeedLogin`
内自行处理跳转
### 移除需要登录事件的监听@off-need-login
...
...
@@ -336,7 +336,7 @@ interface OnRefreshTokenEvent {
**注意**
-
开发者自定监听onNeedLogin事件后,uniI
D
Router的自动跳转登录页面功能会禁用,由开发者在
`onNeedLogin`
内自行处理跳转
-
开发者自定监听onNeedLogin事件后,uniI
d
Router的自动跳转登录页面功能会禁用,由开发者在
`onNeedLogin`
内自行处理跳转
### 移除需要登录事件的监听@off-need-login
...
...
docs/uniCloud/uni-id-pages.md
浏览文件 @
23d0d7ae
...
...
@@ -603,6 +603,46 @@ await uniIDCo.logout()
|errCode |string
|
number |错误码 |
|errMsg |string |错误信息 |
#### 获取支持的登录方式@get-supported-login-type
**接口形式**
```
js
await
uniIDCo
.
getSupportedLoginType
({
appId
,
platform
})
```
**参数说明**
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|appId |string |否 |要查询登录方式的应用DCloud AppId,不传时为当前应用 |
|platform |string |否 |要查询登录方式的应用平台,不传时为当前平台 |
**返回值**
|参数名 |类型 |说明 |
|-- |-- |-- |
|errCode |string
|
number |错误码 |
|errMsg |string |错误信息 |
|supportedLoginType |array |支持的登录方式列表,见下方说明 |
**supportedLoginType**
|登录方式 |说明 |
|--- |--- |
|username-password |用户名密码登录 |
|mobile-password |手机号密码登录 |
|email-password |邮箱密码登录 |
|mobile-code |手机号验证码登录 |
|univerify |App一键登录 |
|weixin |微信登录 |
|qq |QQ登录 |
|apple |苹果登录 |
|alipay |支付宝登录 |
### 绑定账号@bind
#### 使用短信验证码绑定手机号@bind-mobile-by-sms
...
...
@@ -1219,264 +1259,6 @@ await uniIDCo.setAuthorizedApp({
-
此接口为管理端接口
-
仅在用户token即将过期时返回新newToken
### 开发接口@dev
#### 获取支持的登录方式@get-supported-login-type
**接口形式**
```
js
await
uniIDCo
.
getSupportedLoginType
({
appId
,
platform
})
```
**参数说明**
|参数名 |类型 |必填 |说明 |
|-- |-- |-- |-- |
|appId |string |否 |要查询登录方式的应用DCloud AppId,不传时为当前应用 |
|platform |string |否 |要查询登录方式的应用平台,不传时为当前平台 |
**返回值**
|参数名 |类型 |说明 |
|-- |-- |-- |
|errCode |string
|
number |错误码 |
|errMsg |string |错误信息 |
|supportedLoginType |array |支持的登录方式列表,见下方说明 |
**supportedLoginType**
|登录方式 |说明 |
|--- |--- |
|username-password |用户名密码登录 |
|mobile-password |手机号密码登录 |
|email-password |邮箱密码登录 |
|mobile-code |手机号验证码登录 |
|univerify |App一键登录 |
|weixin |微信登录 |
|qq |QQ登录 |
|apple |苹果登录 |
|alipay |支付宝登录 |
## uni-id-common公共模块的API列表@api
自
`uni-id 4.0.0`
起uni-id公共模块内的大部分接口实现移至uni-id-co内,公共模块内仅保留token相关接口
一般开发者无需了解uni-id-common公共模块的API,直接使用
[
uni-id-pages
](
)即可(**需要补充链接**)。
如果想了解uni-id-common公共模块内部实现,可以阅读本章节。
### 基础功能@base
#### 创建uni-id实例@create-instance
用法:
`uniID.createInstance(Object CreateInstanceParams);`
CreateInstanceParams内可以传入云函数context,也可以传入clientInfo参数,作用和context类似。方便在云对象内获取clientInfo后直接传入,
[
什么是云对象?
](
uniCloud/cloud-obj.md
)
。
```
js
// 云函数代码,传入context
const
uniID
=
require
(
'
uni-id-common
'
)
exports
.
main
=
async
function
(
event
,
context
)
{
context
.
APPID
=
'
__UNI__xxxxxxx
'
// 替换为当前客户端的APPID,通过客户端callFunction请求的场景可以使用context.APPID获取
context
.
PLATFORM
=
'
h5
'
// 替换为当前客户端的平台类型,通过客户端callFunction请求的场景可以使用context.PLATFORM获取
context
.
LOCALE
=
'
zh-Hans
'
// 替换为当前客户端的语言代码,通过客户端callFunction请求的场景可以使用context.LOCALE获取
const
uniIDIns
=
uniID
.
createInstance
({
// 创建uni-id实例
context
:
context
,
// config: {} // 完整uni-id配置信息,使用config.json进行配置时无需传此参数
})
payload
=
await
uniIDIns
.
checkToken
(
event
.
uniIdToken
)
// 后续使用uniIDIns调用相关接口
if
(
payload
.
code
)
{
return
payload
}
const
res
=
await
uniIDIns
.
updateUser
({
uid
:
payload
.
uid
,
nickname
:
'
user nickname
'
})
return
res
}
// 云对象代码传入clientInfo
const
uniID
=
require
(
'
uni-id-common
'
)
module
.
exports
=
{
_before
()
{
const
clientInfo
=
this
.
getClientInfo
()
this
.
uniID
=
uniID
.
createInstance
({
// 创建uni-id实例,其上方法同uniID
clientInfo
})
},
login
()
{
// ...
// this.uniID.login()
}
}
```
**为什么需要自行创建uni-id实例**
默认情况下uni-id-common某些接口会自动从全局context内获取客户端的PLATFORM(平台,如:app、h5、mp-weixin)等信息。
在单实例多并发的场景下可能无法正确获取(全局对象会被后面的请求覆盖,可能会导致前面一次请求使用了后面一次请求的PLATFORM信息)。因此推荐在开启云函数单实例多并发后,自行为uni-id传入context。
此外云函数url化时无法获取客户端信息,也需要使用这种方式将客户端信息传入uni-id。
#### token校验@checktoken
一个校验客户端发起请求(uniCloud.callFunction)自带的uniIdToken,获得用户的uid、token、token的过期时间、角色、权限、用户信息(uni-id-users全部字段)的API。
这是非常高频且重要的API通常用于换取操作当前云函数的用户Id。
##### 思考
如果你并没有服务端开发经验,可能会想:为什么需要通过token去换取用户Id,而不是让客户端直接传递用户Id更方便?
这里就涉及到安全问题,有一句话叫做:“前端传递的参数都是不可信任的”。比如:你去银行取款,柜台会要求出示你的身份证来证明你是谁,而不是你直接告诉银行柜台你是谁就管用。否则这是一个极大的安全漏洞。
综上所述:所有服务端操作涉及账户信息相关内容,都需要使用token来获得,而不是使用前端传递的参数。
用法:
`uniID.checkToken(String token, Object checkTokenOptions)`
**参数说明**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| token | String | 是 |客户端callFunction带上的token |
| options | object | 否 |checkToken方法的选项 |
|
|
-
autoRefresh| boolean | 否 |是否需要自动判断刷新token,默认true |
**说明**
-
角色内包含admin时返回的permission是一个空数组,因此判断一个用户是否有权限时应注意admin角色额外进行判断
请务必阅读一下此文档:
[
关于缓存角色权限的说明
](
uniCloud/uni-id.md?id=cache-permission-in-token
)
**响应参数**
| 字段 | 类型 | 说明 |
| --- | --- | --- |
| errCode | Number
|
String|错误码,0表示成功 |
| message | String |详细信息 |
| uid | String |用户Id,校验成功之后会返回 |
| token | String |用户token快要过期时,新生成的token,只有在config内配置了
`tokenExpiresThreshold`
的值时才会有此行为 |
| tokenExpired | TimeStamp |新token的过期时间,单位毫秒 |
| role | Array |- |
| permission | Array |用户权限列表。 |
uni-id使用jwt生成token,jwt所生成的token包含三部分,其中存储的信息为明文信息,uni-id只根据tokenSecret来校验客户端token是否合法。
角色权限将被缓存在token中,此举能减少或消除checkToken的查库次数(有效节省费用、减少响应时间)
**注意:**
-
客户端会自动查找storage内的token在callFunction时插入
-
HBuilderX 2.9.5+ 客户端允许开发者自行在callFunction时传入uniIdToken,此时不再从storage获取token
-
HBuilderX 2.8.0版本起token存储在storage内推荐使用使用蛇形
`uni_id_token`
,会在一段时间内兼容驼峰形式
`uniIdToken`
#### 主动刷新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内uid对应的角色权限
#### 生成token@createtoken
用法:
`uniID.createToken(Object CreateTokenParams)`
**参数说明**
| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| uid | String| 是 |用户Id |
| role | Array | 否 |指定缓存在token内的角色|
| permission| Array | 否 |指定缓存在角色内的权限 |
**响应参数**
| 字段 | 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| token | String| 是 |生成的token |
| tokenExpired| Number| 是 |token过期时间对应的时间戳|
**说明**
-
创建token时如果未传角色权限会自动获取uid对应的角色权限
## uniIdRouter自动路由@uni-id-router
> 新增于 HBuilderX 3.5.0
开发者可以在项目的
`pages.json`
内配置需要登录的页面,登录页面路径等信息,uniCloud会自动在需要登录且客户端登录状态过期或未登录时跳转到登录页面。
结合以下代码及注释了解如何使用
`uniIDRouter`
```
json
{
"pages"
:
[
{
"path"
:
"pages/index/index"
,
"style"
:
{
"navigationBarTitleText"
:
"uni-app"
},
"needLogin"
:
false
//
当前页面是否需要登录才可以访问,此配置优先级高于uniIDRouter下的needLogin
},
{
"path"
:
"pages/list/list"
,
"style"
:
{
"navigationBarTitleText"
:
"uni-app"
},
"needLogin"
:
false
},
{
"path"
:
"pages/detail/detail"
,
"style"
:
{
"navigationBarTitleText"
:
"uni-app"
}
}
],
"globalStyle"
:
{
"navigationBarTextStyle"
:
"black"
,
"navigationBarTitleText"
:
"uni-app"
,
"navigationBarBackgroundColor"
:
"#F8F8F8"
,
"backgroundColor"
:
"#F8F8F8"
},
"uniIDRouter"
:
{
"loginPage"
:
"pages/index/index"
,
//
登录页面路径
"needLogin"
:
[
"pages/detail/.*"
//
需要登录才可访问的页面列表,可以使用正则语法
],
"resToLogin"
:
true
//
自动解析云对象及clientDB的错误码,如果是客户端token不正确或token过期则自动跳转配置的登录页面,配置为
false
则关闭此行为,默认
true
}
}
```
与此功能对应的有两个uniCloud客户端api,
`uniCloud.onNeedLogin()`
和
`uniCloud.offNeedLogin()`
,开发者在监听onNeedLogin事件后,框架就不再自动跳转到登录页面,而是由开发者在onNeedLogin事件内自行处理。详情参考:
[
uniCloud.onNeedLogin
](
uniCloud/client-sdk.md?id=on-need-login
)
**注意**
-
pages.json内有
`uniIDRouter`
节点上述逻辑才会生效,自HBuilderX 3.5.0起创建空项目模板会自动配置空的
`uniIDRouter`
节点
## 错误码@errcode
|错误码 |错误信息 |说明 |
...
...
docs/uniCloud/uni-id-summary.md
浏览文件 @
23d0d7ae
...
...
@@ -110,7 +110,7 @@ web的微信扫码登录、字节小程序登录、facebook等海外主流社交
其他方面,各种常见开源项目如discuz、wordPress、ecshop的用户导入插件,不属于
`uni-id`
主工程,欢迎开发者单独提交插件到插件市场。
# 快速上手@start
#
#
快速上手@start
uni-id-common的插件市场地址为:
[
uni-id-common插件
](
【待定】
)
。但一般不需要单独下载这个插件,但更新uni-id-common公共模块时需要从这里下载更新。
...
...
@@ -142,7 +142,7 @@ uni-id云端同时依赖了公共模块[uni-captcha](https://ext.dcloud.net.cn/p
云端的config.json还有各种配置,详见下个章节。前端的配置请参考uni-id-pages的文档。
# 云端配置config.json的说明@config
#
#
云端配置config.json的说明@config
uni-id的云端配置文件在uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json中。
...
...
@@ -264,7 +264,7 @@ tokenExpiresThreshold用于指定token还有多长时间过期时自动刷新tok
在token还有5分钟过期时调用checkToken接口会返回新的token和新的token的过期时间(新token有效时间也是2小时)。
# token令牌
#
#
token令牌
首先解释下token的概念。token是服务器颁发给客户端的一个令牌。
...
...
@@ -286,7 +286,7 @@ uni-id云端会在login方法成功后自动返回token,uni-app前端框架会
注:不同平台的token有效期一般不一样,app有效期较长,web有效期较短。每个平台的有效期都可以单独在config.json里配置。
# 用户角色权限@rbac
#
#
用户角色权限@rbac
为什么需要角色权限管理?
-
企业管理系统,比如
[
uniCloud admin
](
/uniCloud/admin
)
,除了超级管理员,不同账号通常需根据职位、责任设定不同的系统权限。比如部门管理员、Hr。
...
...
@@ -294,7 +294,7 @@ uni-id云端会在login方法成功后自动返回token,uni-app前端框架会
`uni-id`
基于经典的RBAC模型实现了角色权限系统。
## RBAC模型简介
##
#
RBAC模型简介
RBAC:Role-Based Access Control,基于角色的访问控制。
...
...
@@ -311,7 +311,7 @@ RBAC:Role-Based Access Control,基于角色的访问控制。
用户、角色、权限都存在数据库了,都可以动态创建和修改。当权限对应的代码实现完成后,用户的新入、退出、角色升迁都无需再修改代码,在uni-admin后台的web界面可以由运维人员可视化的给每个用户调整角色、给每个角色调整权限。
## 用户
##
#
用户
用户信息存储在
`uni-id-users`
表中,然后通过
`role`
字段保存该用户所拥有的所有角色ID,角色ID即角色表(
`uni-id-roles`
表)中的
`role_id`
字段,注意不是
`_id`
字段。
...
...
@@ -333,7 +333,7 @@ RBAC:Role-Based Access Control,基于角色的访问控制。
>Tips:将用户角色设计为用户表的字段,而没有新建`用户角色关联表`的原因:避免mongodb在跨表查询时的性能开销
## 角色
##
#
角色
角色信息存储在
`uni-id-roles`
表中
...
...
@@ -394,7 +394,7 @@ RBAC:Role-Based Access Control,基于角色的访问控制。
>Tips2:出厂时可内置常用角色,也可上线后由运营人员动态创建角色。
## 权限
##
#
权限
权限信息在
`uni-id-permissions`
表中,表结构定义如下:
...
...
@@ -440,7 +440,7 @@ RBAC:Role-Based Access Control,基于角色的访问控制。
>Tips1:建议代码交付时内置所有权限,方便clientDB中的权限配置和调整。
## 其他说明
##
#
其他说明
uni-id将用户的角色权限缓存在token内。详情参考:
[
缓存角色权限
](
uniCloud/uni-id?id=cache-permission-in-token
)
。
...
...
@@ -460,13 +460,13 @@ function hasPermission(token, permission) {
注意:
**在uniCloud admin中,封装了可视化的用户、权限、角色的管理,新增删除修改均支持。**
无需自己维护。
[
详见
](
https://uniapp.dcloud.net.cn/uniCloud/admin?id=mutiladmin
)
# 数据库结构@db-schema
#
#
数据库结构@db-schema
`uni-id`
的所有数据表,都在
[
opendb
](
https://gitee.com/dcloud/opendb/
)
规范中。
在unicloud
[
web控制台
](
https://unicloud.dcloud.net.cn/
)
新建数据表时,可以从
`uni-id`
的模板分类里找到下面的表,并一键创建这些表。
## 用户表@user-table
##
#
用户表@user-table
表名:
`uni-id-users`
...
...
@@ -577,7 +577,7 @@ function hasPermission(token, permission) {
**如果需要管理多系统的用户,建议使用type在uni-id-users表内进行区分,不要分多个表**
### 用户表索引使用注意@uni-id-users-indexes
###
#
用户表索引使用注意@uni-id-users-indexes
目前opendb内提供的uni-id-users表包含完整的索引,数据库在索引量多且频繁更新的情况下可能会出现写入缓慢的情况,因此推荐开发者在使用uni-id-users表时可以删除没有用到的索引。
...
...
@@ -585,7 +585,7 @@ function hasPermission(token, permission) {
不了解索引请参考:
[
索引
](
/uniCloud/db-index.html
)
## 验证码表
##
#
验证码表
表名:
`opendb-verify-codes`
...
...
@@ -607,7 +607,7 @@ function hasPermission(token, permission) {
| create_date | Timestamp | 是 | 创建时间 |
| expired_date | Timestamp | 是 | 验证码过期时间 |
## 角色表
##
#
角色表
表名:
`uni-id-roles`
...
...
@@ -620,7 +620,7 @@ function hasPermission(token, permission) {
| comment | String | 否 | 备注 |
| created_date| Timestamp | 是 | 角色创建时间 |
## 权限表
##
#
权限表
表名:
`uni-id-permissions`
...
...
@@ -632,7 +632,7 @@ function hasPermission(token, permission) {
| comment | String | 否 | 备注 |
| created_date | Timestamp | 是 | 权限创建时间 |
## 更多表
##
#
更多表
还有更多uni-id的配套数据表,可以在uniCloud
[
web控制台
](
https://unicloud.dcloud.net.cn/
)
新建表时选择相应模板。此处不再详述,仅罗列清单:
...
...
@@ -645,9 +645,9 @@ function hasPermission(token, permission) {
-
任务表:uni-id-task
-
任务日志表:uni-id-task-log
# 常量@constants
#
#
常量@constants
## 用户状态@user-status
##
#
用户状态@user-status
对应
`uni-id-users`
表的status字段
...
...
@@ -659,7 +659,7 @@ function hasPermission(token, permission) {
|3 |审核失败 |
|4 |注销状态 |
## log类型@log-type
##
#
log类型@log-type
对应
`uni-id-log`
表的type字段
...
...
@@ -675,7 +675,7 @@ function hasPermission(token, permission) {
|bind-apple |绑定苹果账号 |
|bind-alipay|绑定支付宝账号 |
## 手机、邮箱验证码使用场景@sms-type
##
#
手机、邮箱验证码使用场景@sms-type
对应
`opendb-verify-codes`
表短信、邮箱验证码相关记录的的scene字段
...
...
@@ -685,7 +685,7 @@ function hasPermission(token, permission) {
|reset-pwd-by-sms |短信验证码重置密码 |
|bind-mobile-by-sms |短信验证码绑定手机号 |
## 图形验证码使用场景@captcha-scene
##
#
图形验证码使用场景@captcha-scene
对应
`opendb-verify-codes`
表图形验证码相关记录的scene字段
...
...
@@ -697,13 +697,13 @@ function hasPermission(token, permission) {
|send-sms-code |发送短信验证码 |
|bind-mobile-by-sms |短信验证码绑定手机号 |
# uniIdRouter自动路由@uni-id-router
#
#
uniIdRouter自动路由@uni-id-router
> 新增于 HBuilderX 3.5.0
开发者可以在项目的
`pages.json`
内配置需要登录的页面,登录页面路径等信息,uniCloud会自动在需要登录且客户端登录状态过期或未登录时跳转到登录页面。
结合以下代码及注释了解如何使用
`uniI
D
Router`
结合以下代码及注释了解如何使用
`uniI
d
Router`
```
json
{
...
...
@@ -713,7 +713,7 @@ function hasPermission(token, permission) {
"style"
:
{
"navigationBarTitleText"
:
"uni-app"
},
"needLogin"
:
false
//
当前页面是否需要登录才可以访问,此配置优先级高于uniI
D
Router下的needLogin
"needLogin"
:
false
//
当前页面是否需要登录才可以访问,此配置优先级高于uniI
d
Router下的needLogin
},
{
"path"
:
"pages/list/list"
,
"style"
:
{
...
...
@@ -733,7 +733,7 @@ function hasPermission(token, permission) {
"navigationBarBackgroundColor"
:
"#F8F8F8"
,
"backgroundColor"
:
"#F8F8F8"
},
"uniI
D
Router"
:
{
"uniI
d
Router"
:
{
"loginPage"
:
"pages/index/index"
,
//
登录页面路径
"needLogin"
:
[
"pages/detail/.*"
//
需要登录才可访问的页面列表,可以使用正则语法
...
...
@@ -786,9 +786,9 @@ function hasPermission(token, permission) {
**注意**
-
pages.json内有
`uniI
DRouter`
节点上述逻辑才会生效,自HBuilderX 3.5.0起创建空项目模板会自动配置空的
`uniID
Router`
节点
-
pages.json内有
`uniI
dRouter`
节点上述逻辑才会生效,自HBuilderX 3.5.0起创建空项目模板会自动配置空的
`uniId
Router`
节点
# 错误码@errcode
#
#
错误码@errcode
|错误码 |错误信息 |说明 |
|---- |---- |---- |
...
...
@@ -823,7 +823,7 @@ function hasPermission(token, permission) {
|uni-id-change-inviter-forbidden |禁止修改邀请人 |- |
|uni-id-bind-conflict |此账号(微信、QQ、手机号等)已被绑定 |- |
# 多个应用复用相同uni-id-user表
#
#
多个应用复用相同uni-id-user表
有些系统由多个子应用组成,且没有各自独立服务空间,而是需要共享一个服务空间。此时就涉及一个问题,多个应用注册的账户都在uni-id-user表中,如何有效隔离。
...
...
@@ -833,7 +833,7 @@ uni-id-user表中有一个数组型字段`dcloud_appid`,可以存贮这个用
比如乘客端的appid是
`__uni_111111`
,司机端appid是
`__uni_222222`
,那么2个appid都存入
`dcloud_appid`
,即表示这个用户有权登录这2个应用。
## 隔离不同应用的用户@isolate-user
##
#
隔离不同应用的用户@isolate-user
uni-id 3.3.0版本起用户注册时会自动在用户表的记录内标记为注册应用对应的用户,如果没有单独授权登录其他应用的话则只能登录这个应用。即在乘客端应用注册的,默认只能在乘客端应用登录。
...
...
@@ -860,7 +860,7 @@ exports.main = async function(event, context){
-
如果用户数据库记录中
`dcloud_appid`
字段是一个空数组,表示当前用户不能在任何客户端登录
-
已有dcloud_appid的用户,如果使用相同的用户标识(用户名、邮箱、手机、微信等)+ 不同的DCloud Appid登录会被判定为不同的用户,如果此时数据库没有对应的记录,会报用户不存在的错误
## 隔离不同应用的配置@isolate-config
##
#
隔离不同应用的配置@isolate-config
uni-id的config.json支持配置为数组,每项都是一个完整的配置,对不同的配置使用
`dcloudAppid`
字段进行区分(
**此字段与项目内的manifest.json里面的DCloud AppId一致**
),uni-id会自动根据客户端的appid来判断该使用哪套配置。如果使用云函数url化请参考:
[
云函数Url化时使用
](
uniCloud/uni-id?id=url
)
...
...
@@ -897,17 +897,17 @@ exports.main = async function(event, context){
}]
```
# 其他功能
#
#
其他功能
## 裂变@fission
##
#
裂变@fission
在
`config.json`
内配置了
`autoSetInviteCode: true`
则在用户注册时会自动给设置不重复的6位邀请码
在
`config.json`
(
`uniCloud/cloudfuntions/common/uni-config-center/uni-id/config.json`
,以下config.json均指此文件)
内配置了
`autoSetInviteCode: true`
则在用户注册时会自动给设置不重复的6位邀请码
在
`config.json`
内配置了
`forceInviteCode: true`
则只有使用邀请码才可以注册。
`uni-id-co`
在会产生注册行为的接口均添加了inviteCode参数,用于传递邀请码使注册用户接受邀请
## 修改passwordSecret@modifysecret
##
#
修改passwordSecret@modifysecret
**注意:通常情况下设定好passwordSecret之后不需要再进行修改,使用此功能时请务必小心谨慎**
...
...
@@ -967,7 +967,7 @@ uni-id-users表内存储的password字段为使用hmac-sha1生成的hash值,
由于是不可逆加密,理论上passwordSecret泄露不会造成用户的真实密码被泄露,自定义passwordSecret只是进一步加强安全性。
## 缓存角色权限@cache-permission-in-token
##
#
缓存角色权限@cache-permission-in-token
使用
`uni-id-common`
时,token内会缓存用户的角色权限。
...
...
@@ -987,7 +987,7 @@ uni-id-users表内存储的password字段为使用hmac-sha1生成的hash值,
}
```
## 自定义token内容@custom-token
##
#
自定义token内容@custom-token
uni-id-common支持在token内缓存用户的角色权限。但是某些情况下开发者可能还希望缓存一些别的东西,以便在客户端能方便的访问(
**注意:不可缓存机密信息到token内**
)。
...
...
@@ -1015,9 +1015,12 @@ uni-id会自动加载custom-token.js进行处理,在所有生成token的操作
-
不要删除原始token内的字段
## 自定义国际化语言@custom-i8n
##
#
自定义国际化语言@custom-i8n
完整词句列表参考:
[
uni-id中文语言包
](
https://gitee.com/dcloud/uni-id/blob/master/src/lang/zh-Hans.js
)
完整词句列表参考:
-
[
uni-id-co中文语言包
](
https://gitcode.net/dcloud/uni-id-pages/-/blob/master/uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/lang/zh-hans.js
)
-
[
uni-id-common中文语言包
](
https://gitcode.net/dcloud/uni-id-common/-/blob/master/src/lang/zh-Hans.js
)
**用法**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录