Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello_uni-id-pages
提交
8b15df03
H
hello_uni-id-pages
项目概览
DCloud
/
hello_uni-id-pages
通知
1051
Star
31
Fork
43
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
4
列表
看板
标记
里程碑
合并请求
2
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello_uni-id-pages
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
4
Issue
4
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
8b15df03
编写于
7月 06, 2022
作者:
雪洛
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: check client info
上级
818b0f7d
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
76 addition
and
18 deletion
+76
-18
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/common/utils.js
...d-pages/uniCloud/cloudfunctions/uni-id-co/common/utils.js
+0
-11
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/common/validator.js
...ges/uniCloud/cloudfunctions/uni-id-co/common/validator.js
+63
-3
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/index.obj.js
...i-id-pages/uniCloud/cloudfunctions/uni-id-co/index.obj.js
+11
-3
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/lib/utils/verify-code.js
...niCloud/cloudfunctions/uni-id-co/lib/utils/verify-code.js
+1
-1
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/middleware/validate.js
.../uniCloud/cloudfunctions/uni-id-co/middleware/validate.js
+1
-0
未找到文件。
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/common/utils.js
浏览文件 @
8b15df03
...
...
@@ -38,16 +38,6 @@ function isFn (fn) {
return
typeof
fn
===
'
function
'
}
function
checkClientInfo
(
clientInfo
)
{
const
requiredParams
=
[
'
appId
'
,
'
platform
'
]
for
(
let
i
=
0
;
i
<
requiredParams
.
length
;
i
++
)
{
if
(
!
clientInfo
[
requiredParams
[
i
]])
{
console
.
warn
(
'
- 如果使用HBuilderX运行本地云函数/云对象功能时出现此提示,请改为使用客户端调用本地云函数方式调试,或更新HBuilderX到3.4.12及以上版本。
\n
- 如果是缺少clientInfo.appId,请检查项目manifest.json内是否配置了DCloud AppId
'
)
throw
new
Error
(
`"clientInfo.
${
requiredParams
[
i
]}
" is required.`
)
}
}
}
// 获取文件后缀,只添加几种图片类型供客服消息接口使用
const
mime2ext
=
{
'
image/png
'
:
'
png
'
,
...
...
@@ -196,7 +186,6 @@ module.exports = {
getType
,
isValidString
,
batchFindObjctValue
,
checkClientInfo
,
isPlainObject
,
isFn
,
getDistinctArray
,
...
...
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/common/validator.js
浏览文件 @
8b15df03
...
...
@@ -133,13 +133,15 @@ function validate (value = {}, schema = {}) {
required
,
type
}
=
schemaValue
if
(
!
(
schemaKey
in
value
))
{
// value内未传入了schemaKey或对应值为undefined
if
(
value
[
schemaKey
]
===
undefined
)
{
if
(
required
)
{
return
{
errCode
:
ERROR
.
PARAM_REQUIRED
,
errMsgValue
:
{
param
:
schemaKey
}
},
schemaKey
}
}
else
{
continue
...
...
@@ -151,12 +153,70 @@ function validate (value = {}, schema = {}) {
}
const
validateRes
=
validateMethod
(
value
[
schemaKey
])
if
(
validateRes
)
{
validateRes
.
schemaKey
=
schemaKey
return
validateRes
}
}
}
function
checkClientInfo
(
clientInfo
)
{
const
schema
=
{
uniPlatform
:
'
string
'
,
appId
:
'
string
'
,
deviceId
:
{
required
:
false
,
type
:
'
string
'
},
osName
:
{
required
:
false
,
type
:
'
string
'
},
locale
:
{
required
:
false
,
type
:
'
string
'
},
clientIP
:
{
required
:
false
,
type
:
'
string
'
},
appName
:
{
required
:
false
,
type
:
'
string
'
},
appVersion
:
{
required
:
false
,
type
:
'
string
'
},
appVersionCode
:
{
required
:
false
,
type
:
'
string
'
},
channel
:
{
required
:
false
,
type
:
'
string
'
},
userAgent
:
{
required
:
false
,
type
:
'
string
'
},
uniIdToken
:
{
required
:
false
,
type
:
'
string
'
}
}
const
validateRes
=
validate
(
clientInfo
,
schema
)
if
(
validateRes
)
{
if
(
validateRes
.
errCode
===
ERROR
.
PARAM_REQUIRED
)
{
console
.
warn
(
'
- 如果使用HBuilderX运行本地云函数/云对象功能时出现此提示,请改为使用客户端调用本地云函数方式调试,或更新HBuilderX到3.4.12及以上版本。
\n
- 如果是缺少clientInfo.appId,请检查项目manifest.json内是否配置了DCloud AppId
'
)
throw
new
Error
(
`"clientInfo.
${
validateRes
.
schemaKey
}
" is required.`
)
}
else
{
throw
new
Error
(
'
Invalid client info
'
)
}
}
}
module
.
exports
=
{
validate
,
validator
validator
,
checkClientInfo
}
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/index.obj.js
浏览文件 @
8b15df03
const
uniIdCommon
=
require
(
'
uni-id-common
'
)
const
uniCaptcha
=
require
(
'
uni-captcha
'
)
const
{
checkClientInfo
,
getType
}
=
require
(
'
./common/utils
'
)
const
{
checkClientInfo
}
=
require
(
'
./common/validator
'
)
const
ConfigUtils
=
require
(
'
./lib/utils/config
'
)
const
{
isUniIdError
...
...
@@ -69,9 +71,15 @@ const {
module
.
exports
=
{
async
_before
()
{
const
clientInfo
=
this
.
getClientInfo
()
// 检查clientInfo,无appId和platform时本云对象无法正常运行
/**
* 检查clientInfo,无appId和uniPlatform时本云对象无法正常运行
* 此外需要保证用到的clientInfo字段均经过类型检查
* clientInfo由客户端上传并非完全可信,clientInfo内除clientIP、userAgent、source外均为客户端上传参数
* 否则可能会出现一些意料外的情况
*/
checkClientInfo
(
clientInfo
)
let
clientPlatform
=
clientInfo
.
platform
let
clientPlatform
=
clientInfo
.
uniPlatform
// 统一platform名称
switch
(
clientPlatform
)
{
case
'
app
'
:
case
'
app-plus
'
:
...
...
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/lib/utils/verify-code.js
浏览文件 @
8b15df03
...
...
@@ -23,7 +23,7 @@ async function setVerifyCode ({
scene
,
code
:
code
||
getVerifyCode
(),
state
:
0
,
ip
:
this
.
getClientInfo
().
CLIENT
IP
,
ip
:
this
.
getClientInfo
().
client
IP
,
created_date
:
now
,
expired_date
:
now
+
expiresIn
*
1000
}
...
...
uni_modules/uni-id-pages/uniCloud/cloudfunctions/uni-id-co/middleware/validate.js
浏览文件 @
8b15df03
...
...
@@ -5,6 +5,7 @@ const {
module
.
exports
=
function
(
value
=
{},
schema
=
{})
{
const
validateRes
=
validate
(
value
,
schema
)
if
(
validateRes
)
{
delete
validateRes
.
schemaKey
throw
validateRes
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录