Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
yangkaifeng
uni-app
提交
17ce909a
U
uni-app
项目概览
yangkaifeng
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
3
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,发现更多精彩内容 >>
提交
17ce909a
编写于
6月 03, 2021
作者:
DCloud_JSON
提交者:
Gitee
6月 03, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update docs/uniCloud/uni-id.md.
新增,uni-id的api相关描述
上级
dad744d7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
6 deletion
+12
-6
docs/uniCloud/uni-id.md
docs/uniCloud/uni-id.md
+12
-6
未找到文件。
docs/uniCloud/uni-id.md
浏览文件 @
17ce909a
...
...
@@ -415,11 +415,11 @@ exports.main = async function(event,context) {
默认情况下uni-id某些接口会自动从全局context内获取客户端的PLATFORM(平台,如:app-plus、h5、mp-weixin)信息。但是在单实例多并发的场景下可能无法正确获取(全局对象会被后面的请求覆盖,可能会导致前面一次请求使用了后面一次请求的PLATFORM信息)。因此推荐在开启云函数单实例多并发后,自行为uni-id传入context。
### 用户注册 @register
用户注册就是将客户端用户输入的用户名和密码,经服务端
校验
:
1.
用户名是否与已经注册的用户名重复,如果重复就返回错误
用户注册就是将客户端用户输入的用户名和密码,经服务端:
1.
校验
用户名是否与已经注册的用户名重复,如果重复就返回错误
2.
加密密码
3.
生成token
最后将
`用户名`
`密码`
`token`
存储到数据库并返回token
的过程
最后将
`用户名`
`密码`
`token`
存储到数据库并返回token
、uid等响应参数(详见下文“响应参数”表)的过程。
如上操作uni-id的注册api内部会自动完成
用法
`uniID.register(Object RegisterParams)`
...
...
@@ -525,6 +525,9 @@ uniCloud.callFunction({
### 用户登录 @login
登录就是通过查询数据库验证,客户端传递的“用户名”和“密码”是否匹配并返回token、uid等响应参数(详见下文“响应参数”表)的过程。
如果你允许用户同时使用多种方式登录,需要注意:必须限制用户注册用户名不为邮箱格式且不为手机号格式,uni-id内部并未做出此类限制。否则用户可以使用他人的手机号码作为用户名注册账号,这就成了一个漏洞。具体做法可以参考
[
云端一体应用快速开发模版"uniStarter"
](
https://ext.dcloud.net.cn/plugin?id=5057
)
用法:
`uniID.login(Object LoginParams)`
...
...
@@ -542,8 +545,6 @@ uniCloud.callFunction({
| needPermission| Boolean | 否 |设置为true时会在checkToken时返回用户权限(permission)。
`uni-id 3.0.0`
起,如果配置
`"removePermissionAndRoleFromToken": false`
此选项不再生效 |
| queryField | Array| 否 |指定从哪些字段中比对username(传入参数均为username),不填默认与数据库内的username字段对比, 可取值'username'、'email'、'mobile'|
> 如果希望使用queryField来允许用户同时使用多种方式登录,需要注意必须限制用户注册用户名不为邮箱格式且不为手机号格式,uni-id内部并未做出此类限制
**注意**
-
使用邮箱时需要用户对应的记录里
`email_confirmed`
为1才可以登录,手机号同样需要
`mobile_confirmed`
为1才可以登录
...
...
@@ -569,7 +570,7 @@ exports.main = async function(event,context) {
username
,
password
}
=
event
// username、password验证是否合法的逻辑
//
自动完成
username、password验证是否合法的逻辑
const
res
=
await
uniID
.
login
({
username
,
password
,
...
...
@@ -580,6 +581,10 @@ 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);`
...
...
@@ -619,6 +624,7 @@ exports.main = async function(event,context) {
### token校验@checktoken
理论上所有后端操作涉及账户信息都需要使用token校验。“前端传递的参数都是不可信任的”。比如:你去银行取款应当出示你的身份证来证明你是谁,而不是直接告诉银行柜台你是谁就管用。
用法:
`uniID.checkToken(String token, Object checkTokenOptions)`
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录