Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello_uni-id-pages
提交
02ed22ca
H
hello_uni-id-pages
项目概览
DCloud
/
hello_uni-id-pages
通知
1054
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看板
提交
02ed22ca
编写于
3月 02, 2023
作者:
C
chenruilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 调试模式下没有对weixinMobile登录方式进行配置检测
上级
b425d8cc
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
84 addition
and
85 deletion
+84
-85
uni_modules/uni-id-pages/init.js
uni_modules/uni-id-pages/init.js
+84
-85
未找到文件。
uni_modules/uni-id-pages/init.js
浏览文件 @
02ed22ca
// 导入配置
import
config
from
'
@/uni_modules/uni-id-pages/config.js
'
;
import
config
from
'
@/uni_modules/uni-id-pages/config.js
'
// uni-id的云对象
const
uniIdCo
=
uniCloud
.
importObject
(
"
uni-id-co
"
,
{
customUI
:
true
const
uniIdCo
=
uniCloud
.
importObject
(
'
uni-id-co
'
,
{
customUI
:
true
})
// 用户配置的登录方式、是否打开调试模式
const
{
loginTypes
,
debug
loginTypes
,
debug
}
=
config
export
default
async
function
()
{
// 有打开调试模式的情况下
if
(
debug
)
{
// 1. 检查本地uni-id-pages中配置的登录方式,服务器端是否已经配置正确。否则提醒并引导去配置
//调用云对象,获取服务端已正确配置的登录方式
let
{
supportedLoginType
}
=
await
uniIdCo
.
getSupportedLoginType
(
)
console
.
log
(
"
supportedLoginType:
"
+
JSON
.
stringify
(
supportedLoginType
));
//登录方式,服务端和客户端的映射关系
let
data
=
{
smsCode
:
'
mobile-code
'
,
univerify
:
'
univerify
'
,
username
:
'
username-password
'
,
weixin
:
'
weixin
'
,
qq
:
'
qq
'
,
xiaomi
:
'
xiaomi
'
,
sinaweibo
:
'
sinaweib
o
'
,
taobao
:
'
taobao
'
,
facebook
:
'
facebook
'
,
google
:
'
google
'
,
alipay
:
'
alipay
'
,
apple
:
"
apple
"
}
//
遍历客户端配置的登录方式,与服务端比对。并在错误时抛出错误提示
le
t
list
=
loginTypes
.
filter
(
type
=>
!
supportedLoginType
.
includes
(
data
[
type
]))
if
(
list
.
length
)
{
console
.
error
(
export
default
async
function
()
{
// 有打开调试模式的情况下
if
(
debug
)
{
// 1. 检查本地uni-id-pages中配置的登录方式,服务器端是否已经配置正确。否则提醒并引导去配置
// 调用云对象,获取服务端已正确配置的登录方式
const
{
supportedLoginType
}
=
await
uniIdCo
.
getSupportedLoginType
()
console
.
log
(
'
supportedLoginType:
'
+
JSON
.
stringify
(
supportedLoginType
)
)
// 登录方式,服务端和客户端的映射关系
const
data
=
{
smsCode
:
'
mobile-code
'
,
univerify
:
'
univerify
'
,
username
:
'
username-password
'
,
weixin
:
'
weixin
'
,
qq
:
'
qq
'
,
xiaomi
:
'
xiaomi
'
,
sinaweibo
:
'
sinaweibo
'
,
taobao
:
'
taoba
o
'
,
facebook
:
'
facebook
'
,
google
:
'
google
'
,
alipay
:
'
alipay
'
,
apple
:
'
apple
'
,
weixinMobile
:
'
weixin
'
}
//
遍历客户端配置的登录方式,与服务端比对。并在错误时抛出错误提示
cons
t
list
=
loginTypes
.
filter
(
type
=>
!
supportedLoginType
.
includes
(
data
[
type
]))
if
(
list
.
length
)
{
console
.
error
(
`错误:前端启用的登录方式:
${
list
.
join
(
'
,
'
)}
;没有在服务端完成配置。配置文件路径:"/uni_modules/uni-config-center/uniCloud/cloudfunctions/common/uni-config-center/uni-id/config.json"`
);
}
}
// #ifdef APP-PLUS
//如果uni-id-pages配置的登录功能有一键登录,有则执行预登录(异步)
if
(
loginTypes
.
includes
(
'
univerify
'
))
{
uni
.
preLogin
({
provider
:
'
univerify
'
,
complete
:
e
=>
{
// console.log(e);
}
})
}
// #endif
)
}
}
//3. 绑定clientDB错误事件
// clientDB对象
const
db
=
uniCloud
.
database
()
db
.
on
(
'
error
'
,
onDBError
)
//clientDB的错误提示
function
onDBError
({
code
,
// 错误码详见https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=returnvalue
message
})
{
// console.error('onDBError', {code,message});
}
// 解绑clientDB错误事件
//db.off('error', onDBError)
// #ifdef APP-PLUS
// 如果uni-id-pages配置的登录功能有一键登录,有则执行预登录(异步)
if
(
loginTypes
.
includes
(
'
univerify
'
))
{
uni
.
preLogin
({
provider
:
'
univerify
'
,
complete
:
e
=>
{
// console.log(e);
}
})
}
// #endif
// 3. 绑定clientDB错误事件
// clientDB对象
const
db
=
uniCloud
.
database
()
db
.
on
(
'
error
'
,
onDBError
)
// clientDB的错误提示
function
onDBError
({
code
,
// 错误码详见https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=returnvalue
message
})
{
// console.error('onDBError', {code,message});
}
// 解绑clientDB错误事件
// db.off('error', onDBError)
//
4. 同步客户端push_clientid至device表
if
(
uniCloud
.
onRefreshToken
)
{
uniCloud
.
onRefreshToken
(()
=>
{
// console.log('onRefreshToken');
if
(
uni
.
getPushClientId
)
{
uni
.
getPushClientId
({
success
:
async
function
(
e
)
{
// console.log(e)
le
t
pushClientId
=
e
.
cid
// console.log(pushClientId);
le
t
res
=
await
uniIdCo
.
setPushCid
({
pushClientId
})
// console.log('getPushClientId', res);
},
fail
(
e
)
{
console
.
log
(
e
)
}
})
}
})
}
}
//
4. 同步客户端push_clientid至device表
if
(
uniCloud
.
onRefreshToken
)
{
uniCloud
.
onRefreshToken
(()
=>
{
// console.log('onRefreshToken');
if
(
uni
.
getPushClientId
)
{
uni
.
getPushClientId
({
success
:
async
function
(
e
)
{
// console.log(e)
cons
t
pushClientId
=
e
.
cid
// console.log(pushClientId);
cons
t
res
=
await
uniIdCo
.
setPushCid
({
pushClientId
})
// console.log('getPushClientId', res);
},
fail
(
e
)
{
console
.
log
(
e
)
}
})
}
})
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录