Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
小浣熊撸代码
uni-app
提交
dad3695a
U
uni-app
项目概览
小浣熊撸代码
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dad3695a
编写于
3月 19, 2021
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs: uni-id
上级
da29b116
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
71 addition
and
4 deletion
+71
-4
docs/uniCloud/uni-id.md
docs/uniCloud/uni-id.md
+71
-4
未找到文件。
docs/uniCloud/uni-id.md
浏览文件 @
dad3695a
...
...
@@ -965,9 +965,9 @@ exports.main = async function(event,context) {
此接口仅适用于不希望使用config.json初始化而是希望通过js的方式传入配置的情况,多数情况下不推荐使用。
**如果你要使用clientDB,且必须要用这种方式初始化uni-id,必须在uni-id的config.json内也写上同样的配置。**
**
config
参数说明**
**
InitParams
参数说明**
config
格式与config.json完全相同
InitParams
格式与config.json完全相同
**响应参数**
...
...
@@ -1003,6 +1003,37 @@ exports.main = async function(event,context) {
return
res
}
```
### 创建uni-id实例@create-instance
> uni-id 3.0.7及以上版本
用法:
`uniID.createInstance(Object CreateInstanceParams);`
CreateInstanceParams内可以传入云函数context,
**主要用于在单实例多并发的场景(目前uniCloud还未支持,后续会提供)**
```
js
// 云函数代码
const
uniID
=
require
(
'
uni-id
'
)
exports
.
main
=
async
function
(
event
,
context
)
{
const
uniIDIns
=
uniID
.
createInstance
({
// 创建uni-id实例,其上方法同uniID
context
:
context
})
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
}
```
**为什么需要自行创建uni-id实例**
默认情况下uni-id某些接口会自动从全局context内获取客户端的PLATFORM(平台,如:app-plus、h5、mp-weixin)信息。但是在单实例多并发的场景下可能无法正确获取(全局对象会被后面的请求覆盖,可能会导致前面一次请求使用了后面一次请求的PLATFORM信息)。因此推荐在开启云函数单实例多并发后,自行为uni-id传入context。
## 手机号码
...
...
@@ -2809,7 +2840,38 @@ uni-id-users表内存储的password字段为使用hmac-sha1生成的hash值,
// 当前角色拥有'your permission id'对应的权限
}
```
## 自定义token内容@custom-token
> uni-id 3.0.7及以上版本,且需要使用[uni-config-center](https://ext.dcloud.net.cn/plugin?id=4425)
自
`uni-id 3.0.0`
起,支持在token内缓存用户的角色权限。但是某些情况下开发者可能还希望缓存一些别的东西,以便在客户端能方便的访问(
**注意:不可缓存机密信息到token内**
)。
**用法**
在
`uni-config-center`
模块内的uni-id插件内创建
`custom-token.js`
内容如下:
```
js
module
.
exports
=
async
(
tokenObj
)
=>
{
// tokenObj为原始token信息结构如下
// {
// uid: 'abc', // 用户id
// role: [], // 用户角色列表
// permission: [] // 用户权限列表,admin角色的用户权限列表为空数组
// }
tokenObj
.
customField
=
'
hello custom token
'
// 自定义token字段
return
tokenObj
// 注意务必返回修改后的token对象
}
```
uni-id会自动加载custom-token.js进行处理,在所有生成token的操作(包括:登录、注册、token过期自动刷新、开发者自行调用createToken)执行时自动获取新token信息,并生成token。
**注意**
-
使用custom-token时自行调用createToken接口会变为异步操作,需使用
`await uniID.createToken(...)`
-
不要删除原始token内的字段
# 迁移指南@migration
## 自1.x.x版本升级到2.x.x@m1to2
...
...
@@ -2838,7 +2900,12 @@ uniCloud admin可以平滑升级到uni-id 3.0.0。如果要缓存角色权限到
受第一步影响app/init内无法获取用户信息,可以额外调用uniID的getUserInfo获取
可以参考此次提交进行调整:
[
uniCloud admin
](
https://github.com/dcloudio/uniCloud-admin/commit/8359d699aacb8f7d074fce9aa82a36474cb6e7df
)
#### 使用uni-config-center@uni-config-center
> uni-id 3.0.7及以上版本
从插件市场导入支持uni_modules的uni-id,会自动安装依赖的uni-config-center到uni_modules内。如果此前并没有使用uni-config-center可以直接将uni-id的config.json移至
`uni-config-center/uni-id/config.json`
即可(可以参照插件市场的uni-id示例项目)
# FAQ
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录