Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
anyefeiyu
uni-app
提交
d27fd53e
U
uni-app
项目概览
anyefeiyu
/
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,发现更多精彩内容 >>
提交
d27fd53e
编写于
6月 04, 2021
作者:
DCloud_JSON
提交者:
Gitee
6月 04, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.修改文档顺序,先介绍checktoken再介绍需要checktoken配套使用的其他API。
2.新增解释为什么要用checktoken
上级
5260268e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
44 deletion
+48
-44
docs/uniCloud/uni-id.md
docs/uniCloud/uni-id.md
+48
-44
未找到文件。
docs/uniCloud/uni-id.md
浏览文件 @
d27fd53e
...
...
@@ -580,51 +580,15 @@ exports.main = async function(event,context) {
}
```
### 登出
登出就是一个验证客户端uniCloud.callFunction自带的uniIdToken并获取user_id,将对应user_id的用户的token清空的过程(uniID登出api内部会自动完成,你传入uniIdToken即可)。
#### 思考
如果你并没有服务端开发经验,可能会想:为什么这里需要通过token去换取user_id,而不是让客户端直接传递user_id更方便?这里就涉及到安全问题,有一句话叫做:“前端传递的参数都是不可信任的”。比如:你去银行取款应当出示你的身份证来证明你是谁,而不是直接告诉银行柜台你是谁就管用。
用法:
`uniID.logout(String token);`
**注意**
-
登出成功之后应删除持久化存储的token,键值为:
`uni_id_token`
,
`uni.removeStorageSync('uni_id_token')`
```
js
uni
.
removeStorageSync
(
'
uni_id_token
'
)
uni
.
removeStorageSync
(
'
uni_id_token_expired
'
)
```
**参数说明**
| 字段| 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| token | String| 是 |用户token|
**响应参数**
| 字段| 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code| Number| 是 |错误码,0表示成功|
| message | String| 是 |详细信息 |
**示例代码**
```
js
// 云函数logout代码
const
uniID
=
require
(
'
uni-id
'
)
exports
.
main
=
async
function
(
event
,
context
)
{
const
res
=
await
uniID
.
logout
(
event
.
uniIdToken
)
return
res
}
```
### token校验@checktoken
这是一个校验客户端发起请求(uniCloud.callFunction)自带的uniIdToken,获得用户的uid、token、token的过期时间、角色、权限、用户信息(uni-id-users全部字段)的API。
这是非常高频且重要的API通常用于换取操作当前云函数的用户Id。
### token校验@checktoken
理论上所有后端操作涉及账户信息都需要使用token校验。“前端传递的参数都是不可信任的”。比如:你去银行取款应当出示你的身份证来证明你是谁,而不是直接告诉银行柜台你是谁就管用。
#### 思考
如果你并没有服务端开发经验,可能会想:为什么需要通过token去换取用户Id,而不是让客户端直接传递用户Id更方便?
这里就涉及到安全问题,有一句话叫做:“前端传递的参数都是不可信任的”。比如:你去银行取款应当出示你的身份证来证明你是谁,而不是直接告诉银行柜台你是谁否则这是一个极大的安全漏洞。
综上所述:所有服务端操作涉及账户信息相关内容,都需要使用token来获得,而不是使用前端传递的参数。
用法:
`uniID.checkToken(String token, Object checkTokenOptions)`
...
...
@@ -720,6 +684,46 @@ uniCloud.callFunction({
```
### 登出
登出就是一个验证客户端uniCloud.callFunction自带的uniIdToken通过token校验并获取uid,将对应uid的用户的token清除的过程(uniID登出api内部会自动完成,你传入uniIdToken即可)。
用法:
`uniID.logout(String token);`
**注意**
-
登出成功之后应删除持久化存储的token,键值为:
`uni_id_token`
,
`uni.removeStorageSync('uni_id_token')`
```
js
uni
.
removeStorageSync
(
'
uni_id_token
'
)
uni
.
removeStorageSync
(
'
uni_id_token_expired
'
)
```
**参数说明**
| 字段| 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| token | String| 是 |用户token|
**响应参数**
| 字段| 类型 | 必填| 说明 |
| --- | --- | --- | --- |
| code| Number| 是 |错误码,0表示成功|
| message | String| 是 |详细信息 |
**示例代码**
```
js
// 云函数logout代码
const
uniID
=
require
(
'
uni-id
'
)
exports
.
main
=
async
function
(
event
,
context
)
{
const
res
=
await
uniID
.
logout
(
event
.
uniIdToken
)
return
res
}
```
### 生成token@createtoken
注意createToken接口不会将生成的token存库,只是生成token而已
...
...
@@ -1268,7 +1272,7 @@ exports.main = async function(event,context) {
| password |String | 否 |密码,type为
`register`
时生效 |
| inviteCode |String | 否 |邀请人的邀请码,type为
`register`
时生效 |
| myInviteCode |String | 否 |设置当前注册用户自己的邀请码,type为
`register`
时生效 |
| needPermission| Boolean | 否 |设置为true时会在checkToken时返回用户权限(permission),建议在管理控制台中使用 |
| needPermission| Boolean | 否 |设置为true时会在checkToken时返回用户权限(permission),建议在管理控制台中使用 |
| role | Array | 否 |设定用户角色 ,当前用户为新注册时生效 |
**响应参数**
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录