Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MuGuiLin
uni-app
提交
d23d6f9f
U
uni-app
项目概览
MuGuiLin
/
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,发现更多精彩内容 >>
提交
d23d6f9f
编写于
8月 17, 2021
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(App): login add onlyAuthorize param, uni.getCheckBoxState
上级
036ae27a
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
64 addition
and
7 deletion
+64
-7
docs/api/plugins/login.md
docs/api/plugins/login.md
+33
-5
lib/apis.js
lib/apis.js
+1
-0
src/platforms/app-plus/service/api/plugin/oauth.js
src/platforms/app-plus/service/api/plugin/oauth.js
+30
-2
未找到文件。
docs/api/plugins/login.md
浏览文件 @
d23d6f9f
...
...
@@ -23,17 +23,20 @@ H5平台登录注意事项:
|scopes|String/Array|见平台差异说明|授权类型,默认 auth_base。支持 auth_base(静默授权)/ auth_user(主动授权) / auth_zhima(芝麻信用)|支付宝小程序|
|timeout|Number|否|超时时间,单位ms|微信小程序、百度小程序|
|univerifyStyle|Object|否|
[
一键登录
](
/univerify
)
页面样式|App 3.0.0+|
|onlyAuthorize|Boolean|否|
`微信登录`
仅请求授权认证|App 3.2.3+|
|success|Function|否|接口调用成功的回调||
|fail|Function|否|接口调用失败的回调函数||
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
|
**注意:**
微信登录在未配置
`onlyAuthorize`
的情况下调用此接口,
`code`
值为使用过的,用以换取
`authResult`
,这样会导致使用
`code`
去和微信换取信息时会报错。配置
`onlyAuthorize`
会把未使用过的
`code`
值返回。
**success 返回参数说明**
|参数名|说明|
|:-|:-|
|authResult|登录服务商提供的登录信息,服务商不同返回的结果不完全相同|
|code|
小程序专有,用户登录凭证。开发者需要在开发者服务器后台,使用 code 换取 openid 和 session_key 等信息
|
|errMsg|描述信息|
|参数名|说明|
平台差异说明|
|:-|:-|
:-|
|authResult|登录服务商提供的登录信息,服务商不同返回的结果不完全相同|
微信登录配置
`onlyAuthorize`
则此项为空,App 3.2.3+ |
|code|
用户登录凭证。开发者需要在开发者服务器后台,使用 code 换取 openid 和 session_key 等信息|微信登录配置
`onlyAuthorize`
code值有效,App 3.2.3+
|
|errMsg|描述信息|
|
各个平台的登录流程存在差异,详细请参考相关平台的文档说明:
...
...
@@ -272,3 +275,28 @@ uni.login({
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|快手小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|3.0.0+|x|x|x|x|x|x|x|
### uni.getCheckBoxState(OBJECT)
获取
[
一键登录
](
/univerify
)
条款勾选框状态。
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|快手小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|3.2.3+|x|x|x|x|x|x|x|
**OBJECT 参数说明**
|参数名|类型|必填|说明|
|:-|:-|:-|:-|
|success|Function|否|接口调用成功的回调|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
**success 返回参数说明**
|参数|类型|说明|
|:-|:-|:-|
|state|Boolean|一键登录条款勾选框状态|
|errMsg|String|描述信息|
\ No newline at end of file
lib/apis.js
浏览文件 @
d23d6f9f
...
...
@@ -218,6 +218,7 @@ const third = [
'
getUserProfile
'
,
'
preLogin
'
,
'
closeAuthView
'
,
'
getCheckBoxState
'
,
'
share
'
,
'
shareWithSystem
'
,
'
showShareMenu
'
,
...
...
src/platforms/app-plus/service/api/plugin/oauth.js
浏览文件 @
d23d6f9f
...
...
@@ -22,9 +22,24 @@ function getService (provider) {
export
function
login
(
params
,
callbackId
)
{
const
provider
=
params
.
provider
||
'
weixin
'
const
errorCallback
=
warpPlusErrorCallback
(
callbackId
,
'
login
'
)
const
authOptions
=
provider
===
'
apple
'
?
{
scope
:
'
email
'
}
:
params
.
univerifyStyle
?
{
univerifyStyle
:
univerifyButtonsClickHandling
(
params
.
univerifyStyle
,
errorCallback
)
}
:
{}
getService
(
provider
).
then
(
service
=>
{
function
login
()
{
function
login
()
{
if
(
params
.
onlyAuthorize
&&
provider
===
'
weixin
'
)
{
service
.
authorize
(({
code
})
=>
{
invoke
(
callbackId
,
{
code
,
authResult
:
''
,
errMsg
:
'
login:ok
'
})
},
errorCallback
)
return
}
service
.
login
(
res
=>
{
const
authResult
=
res
.
target
.
authResult
invoke
(
callbackId
,
{
...
...
@@ -32,7 +47,7 @@ export function login (params, callbackId) {
authResult
:
authResult
,
errMsg
:
'
login:ok
'
})
},
errorCallback
,
provider
===
'
apple
'
?
{
scope
:
'
email
'
}
:
{
univerifyStyle
:
univerifyButtonsClickHandling
(
params
.
univerifyStyle
,
errorCallback
)
}
||
{}
)
},
errorCallback
,
authOptions
)
}
// 先注销再登录
// apple登录logout之后无法重新触发获取email,fullname;一键登录无logout
...
...
@@ -132,6 +147,19 @@ export function closeAuthView () {
return
getService
(
'
univerify
'
).
then
(
service
=>
service
.
closeAuthView
())
}
export
function
getCheckBoxState
(
params
,
callbackId
)
{
const
successCallback
=
warpPlusSuccessCallback
(
callbackId
,
'
getCheckBoxState
'
)
const
errorCallback
=
warpPlusErrorCallback
(
callbackId
,
'
getCheckBoxState
'
)
try
{
getService
(
'
univerify
'
).
then
(
service
=>
{
const
state
=
service
.
getCheckBoxState
()
successCallback
({
state
})
})
}
catch
(
error
)
{
errorCallback
(
error
)
}
}
/**
* 一键登录自定义登陆按钮点击处理
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录