DCloud_App_Array
DCloud_App_Array
  • 发布:2015-04-01 12:11
  • 更新:5 天前
  • 阅读:112438

授权登录插件配置

分类:HTML5+

云端打包登录鉴权功能需要到第三方开发平台申请应用后获取相关配置参数,目前支持的平台包括:

  1. 微信:微信开放平台
  2. QQ:腾讯开放平台
  3. 微博:新浪微博开放平台
    配置参数需要提交云端打包后才能生效,如果需要真机运行生效请使用自定义基座

HBuilderX中配置登录鉴权

从微信/QQ/微博开放平台申请获取配置参数后,需在HBuilderX中配置并提交云端打包才能生效。
老版本HBuilder配置界面有差异,逻辑是一样的,建议更新使用HBuilderX

配置使用登录鉴权模块

打开应用的manifest.json文件,在“模块权限配置”项中勾选“OAuth(登录鉴权)”:

配置登录鉴权参数

  • 微信
    在应用manifest.json文件的“SDK配置”页面,勾选“微信登录”项,并输入从微信开放平台申请的参数:


    appid:微信开放平台申请应用的AppID值;
    appSecret:微信开放平台申请应用的AppSecret值。

  • QQ
    在应用manifest.json文件的“SDK配置”页面,勾选“QQ登录”项,并输入从腾讯QQ开放平台申请的参数:


    appid:腾讯QQ开放平台申请应用的AppID值。

  • 微博
    在应用manifest.json文件的“SDK配置”页面,勾选“新浪微博登录”项,并输入从新浪微博开放平台申请的参数:


    "appkey": "新浪微博平台应用appkey";
    "appsecret": "新浪微博平台应用appsecret";
    "redirect_uri": "新浪微博平台应用授权回调页地址"。

配置完成后Ctrl+S保存提交App云端打包生效。

配置参数安全性问题

在HBuilder|HBuilderX中配置的参数云端打包后会保存在iap|apk中,对于安全性要求高的开发者可能担心存在参数泄露的风险,可以采取以下方式处理。

  • JS代码中动态传参数
    如登录服务AuthService的请求授权认证方法authorize,可以通过第三个参数options动态传入appid、appSecret等。
    这些参数可以加密保存到js代码中或连网从服务器获取(避免保存在本地引起泄露风险,当然需要考虑网络传输过程的安全问题)。

  • 通过服务器完成授权认证
    根据OAuth规范,实际客户端授权只是为了获取授权临时票据(code),这时候可以仅在客户端配置appid参数调用登录服务AuthService的请求授权认证方法authorize获取临时票据,将票据提交到服务器完成后续的操作。
    这种情况授权的参数(如appsecret)仅保存服务器即可,安全性更高。
    在服务器的对接流程需要根据各开放平台的规范要求进行处理,如微信参考:授权后接口调用

这时在HBuilder|HBuilderX中可以填入任意值提交云端打包

不同开发者对安全的要求不一样,其实别人拿到你的登陆appSecret也做不了什么事。当然如何选择还是看自己的业务要求。

7 关注 分享
野蛮人 可可西里 Trust huaguojun123@163.com withdisease 我们都是倒霉熊 挨踢小子

要回复文章请先登录注册

673011635@qq.com

673011635@qq.com

回复 爱吃鱼的靖哥哥:
离线打包有小米登录,云打包没有,如果我没在开放平台申请appid的话,离线打包怎么会有呢?意思是你有小米登录呢?
5 天前
爱吃鱼的靖哥哥

爱吃鱼的靖哥哥

回复 673011635@qq.com:
你确定,你没有在开放平台申请appid吗
5 天前
673011635@qq.com

673011635@qq.com

回复 爱吃鱼的靖哥哥:
可以登录啊
5 天前
673011635@qq.com

673011635@qq.com

小米登录怎么没了呢?
5 天前
唐AIqi

唐AIqi

uni-app 真机调试可以正常微信登录 打包成apk 就不行了 有碰到的吗 appid什么的都是配置正确的
2019-09-04 11:27
唐AIqi

唐AIqi

回复 13628314904@163.com:
同问 解决了吗
2019-09-04 10:04
爱吃鱼的靖哥哥

爱吃鱼的靖哥哥

有没有谁遇到过微信授权登录用的小程序的appid,在线上传打包成apk是可以正常登录的,但是离线本地打包就登录不了,好像是appid要换成androd的,离线打包和云打包有什么不一样吗
2019-08-23 11:35
335190153@qq.com

335190153@qq.com

QQ申请网站应用还是移动应用
2019-08-17 16:20
飞翔的丫蛋

飞翔的丫蛋

文档写的真是无力吐槽
2019-08-08 11:03
719795873@qq.com

719795873@qq.com

用vue打包出来的APP获取不到登录权限
2019-06-24 23:35
DCloud_App_Array

DCloud_App_Array (作者)

回复 asven123@163.com:
移动应用
2019-05-29 17:13
asven123@163.com

asven123@163.com

在微信开发平台申请什么类型的 应用?
2019-05-28 21:27
1076439165@qq.com

1076439165@qq.com

更新个hbuildx的配置文档吧 这个太难看懂了
2019-05-16 15:19
DCloud_App_Array

DCloud_App_Array (作者)

回复 1694382922@qq.com:
不支持淘宝登录
2019-05-07 15:14
1694382922@qq.com

1694382922@qq.com

MUI集成淘宝SDK授权这个能支持吗?
2019-05-07 15:07
1509619079@qq.com

1509619079@qq.com

是不是开发偷懒 忘记更新了?
2019-04-22 10:35
1509619079@qq.com

1509619079@qq.com

在? 为什么我新版本生成的manifest.json里的代码 和你这个完全不一样? plus在哪? 为什么我只有个app-plus??
2019-04-22 10:35
306816224@qq.com

306816224@qq.com

什么时候把支付宝登陆添加进去呢?我们公司也要使用支付宝登录接口呢。
2019-04-01 11:53
pokerface0206@163.com

pokerface0206@163.com

回复 13628314904@163.com:
你好,我也遇到这个问题了,请问一下你是如何解决的呢?
2019-01-16 16:20
DavidCode

DavidCode

什么时候把支付宝登陆添加进去呢?有这计划或想法么?
2019-01-10 09:18
244709369@qq.com

244709369@qq.com

支付宝快捷登录列入开发计划了吗?
2018-12-27 11:27
2571501169@qq.com

2571501169@qq.com

登录成功后,s.login(successCB,errorCB,options) 得到openid , successCB里面不能往后台发送openid,请教怎么解决,谢谢
2018-12-25 12:00
来学习的

来学习的

网站部分怎么加代码
2018-12-22 18:04
keoy

keoy

看着挺蒙
2018-11-23 09:07
jtshushu

jtshushu

回复 13628314904@163.com:
你好有解决吗 我也不行
2018-11-20 09:18
天使中的魔鬼

天使中的魔鬼

微信第三发登录不支持支付宝APP登录啊?官方可以加入进去吗?@DCloud_App_Array
2018-11-15 17:09
2664644993@qq.com

2664644993@qq.com

回复 DCloud_App_Array:
hbuilderx 更新了,但是hbuilder返回的方法没有更新,然后就又安装了个hbuilderx
2018-10-29 15:41
DCloud_App_Array

DCloud_App_Array (作者)

回复 2664644993@qq.com:
只有微信登录才支持authorize
2018-10-29 11:31
2664644993@qq.com

2664644993@qq.com

昨天看到最新更新日志说微信登录可以用authorize方法获取code了,但是返回的services没有这个方法,请问官方发布了吗?
2018-10-27 16:06
DCloud_App_Array

DCloud_App_Array (作者)

回复 366836631@qq.com:
http://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.AuthService.authorize
2018-10-23 12:36
366836631@qq.com

366836631@qq.com

我看到最新更新日志说微信登录可以用authorize方法获取code了,但是我没有获取到。官方有示例吗
2018-10-22 21:32
13628314904@163.com

13628314904@163.com

我用真机进行调试的时候微可以正常微信登录,但是app云打包之后,不能正常登录,直接走报错的方法,请问是什么原因呢?
2018-10-19 13:53
fajl@163.com

fajl@163.com

回复 码农在奋斗:
现在也是这个问题,还没有解决办法?
2018-09-19 18:26
会跑的猪

会跑的猪

回复 qw11234hanqing@163.com:
已经发布了,增加了authorize,就是没找到范例
2018-09-18 09:30
qw11234hanqing@163.com

qw11234hanqing@163.com

回复 bilibili:
http://ask.dcloud.net.cn/question/58094,官方回复了,已经列入开发计划了,很赞
2018-09-10 18:48
bilibili

bilibili

回复 qw11234hanqing@163.com:
dcloud 的做法我反正是非常不能理解 我赞同你的观点
2018-08-22 19:12
qw11234hanqing@163.com

qw11234hanqing@163.com

回复 DCloud_App_Array:
plus.oauth.AuthService.login() 该方法还是有安全漏洞的,因为是APP端调用的,通过抓包工具获取到了https请求下的appsecret(我们安全部门已经提出该漏洞)。

微信官方推荐的是1.通过微信授权获取code,2. 将code传递给我们自己的服务器,服务器来通过code+appid+appsecret获取用户信息的,但是授权登录只能通过plus.oauth.AuthService.login()的方式一步完成,但是针对此种情况有没有解决办法,急求!!http://ask.dcloud.net.cn/question/58094
2018-08-16 14:28
754983977@qq.com

754983977@qq.com

回复 shunzizhan@163.com:
你好 解决了吗
2018-07-26 14:42
m15961780138@163.com

m15961780138@163.com

[-100]:invalid appsecret, view more at http://t.cn/RAEkdVq, hints: [ req_id: 1tVblA0147ha61 ],微信登录失败,开放平台appid,应用签名,appsecret核对过多遍,H510D6A22
2018-07-17 13:39
Marco

Marco

如何添加其他的登录方式?如:Facebook,Google,其他第三方网站???
2018-05-14 10:53
大鼻子

大鼻子

第三方登录的时候,点击微信为什么会跳转到第三方登录页面,瞬间回到当前页面,在进入第三方登录页面,大家有没有遇到过这样的问题?
2018-04-09 11:38
412811382@qq.com

412811382@qq.com

云平台打包之后 微信登录有些突然崩溃 我是安卓5.1 以前没这个情况的 最近发生了什么 APPID 是H509B34BF 请帮我看一眼
2018-04-03 12:21
hebaulida@qq.com

hebaulida@qq.com

回复 DCloud_App_Array:
只有这种解决方法吗
2018-03-16 09:27
DCloud_App_Array

DCloud_App_Array (作者)

回复 shunzizhan@163.com:
之前没碰到过这种现象,从提示语看应该是在应用宝发布就可以了
2018-03-01 12:01
shunzizhan@163.com

shunzizhan@163.com

回复 DCloud_App_Array:
该应用非官方正版应用,请去应用宝下载正版后……,是不是在应用市场发布之后就可以了
2018-02-28 15:41
DCloud_App_Array

DCloud_App_Array (作者)

回复 shunzizhan@163.com:
授权失败应该是配置的参数不对,或者是在开放平台配置的包名或签名数据不正确
2018-02-28 14:56
shunzizhan@163.com

shunzizhan@163.com

回复 DCloud_App_Array:
可以了,谢谢,原来是我一直没有勾选上,就直接打包,但是qq授权提示要到应用宝下载正式应用,微信授权失败,这样是正确的么
2018-02-28 14:17
DCloud_App_Array

DCloud_App_Array (作者)

回复 shunzizhan@163.com:
在后台查了下日志,发现你提交打包的应用中没有配置登录相关参数,在manifest.json文件的代码识图下plus->distribute->plugins->oauth应该存在配置相关数据,请确定在“SDK配置”界面中“plus.oauth-登录鉴权”下勾选对应要使用的登录服务并配置正确参数。
2018-02-28 12:28
shunzizhan@163.com

shunzizhan@163.com

回复 DCloud_App_Array:
H54764EE1
麻烦了
2018-02-27 15:03
DCloud_App_Array

DCloud_App_Array (作者)

回复 shunzizhan@163.com:
如果是plus.oauth.getServices返回空数据,说明云端打包没有将相应的组件添加进去(这种情况跟真机运行是不一样的)。把appid发出来,我们查下打包日志。
2018-02-27 15:01
shunzizhan@163.com

shunzizhan@163.com

回复 DCloud_App_Array:
没问题的,最开始打包可以,但是后面业务逻辑有点改变,就改动过代码,但是如果有问题,真机模拟不是应该就不行么
2018-02-27 14:57
DCloud_App_Array

DCloud_App_Array (作者)

回复 shunzizhan@163.com:
确保在manifest.json文件“SDK配置”项页面的“plus.oauth - 登录鉴权”下填写正确
2018-02-27 14:53
shunzizhan@163.com

shunzizhan@163.com

出现了个新问题,真机模拟正常,但是打包之后,就没有反应,跟踪是plus.oauth.getServices返回的授权列表是空数组,不知道怎么搞了
2018-02-27 10:08
shunzizhan@163.com

shunzizhan@163.com

回复 452009426@qq.com:
我的是分享不行,授权可以
2018-02-10 11:31
shunzizhan@163.com

shunzizhan@163.com

前天做的授权登录,正常使用,今天把数据清空,再授权就不行了,怎么回事喔
2018-02-10 11:31
452009426@qq.com

452009426@qq.com

appid和appscrete填的和分享的配置一样,微信分享功能正常,但是微信登录功能不行。在获取微信授权登录服务后发现authResult和userInfo都是为null. 是什么原因呢?
2017-12-01 13:40
18155215951@163.com

18155215951@163.com

我用微信,QQ都没问题,但是在新浪上报undefined is not an object (evaluating 'e.authResult')这个错,想知道是不是回调地址写的有问题
2017-11-01 14:36
军军

军军

请问可以增加facebook,google等国外网站授权登陆吗?
2017-10-23 16:30
kika

kika

云打包后,微博登录无响应。请问该怎么调试?
###plus.oauth.getServices可以执行
###微信登录是ok的。
2017-10-18 15:11
971339822@qq.com

971339822@qq.com

回复 SHQ:
你的问题怎么解决的?
2017-08-14 15:46
539488489@qq.com

539488489@qq.com

配置了微信登录的appid跟appsecret是要提交到云端打包才会生效的吗?
2017-07-05 09:50
jungle1028@qq.com

jungle1028@qq.com

回复 DCloud_App_Array:
微信授权分两步吧,第一步只需要appid即可拿到code(5分钟有效),此时app可以将此code提交到自己的服务器;然后通过服务端的程序再去调用微信开放平台接口获取accesstoken及openid,只有这一步才需要appsecret,使用这种方式可以避免在移动端出现appsecret,否则的确有安全隐患
2017-05-20 01:03
1691194298@qq.com

1691194298@qq.com

mark
2017-05-07 19:22
bubiandeqingtian@163.com

bubiandeqingtian@163.com

微信授权取消有 无法再次拉起授权页面 你们有过吗
2017-04-28 16:09
DCloud_App_Array

DCloud_App_Array (作者)

回复 zhangma520@21cn.com:
临时处理方法:提交Android打包的时候配置Android的appid,提交iOS打包时配置iOS的appid。
2016-07-08 18:09
zhangma520@21cn.com

zhangma520@21cn.com

@DCloud_App_Array QQ登录在文档里只是说要到腾讯开放平台获取APPID然后填入配置文件,但是现在腾讯开放平台里分了iOS和安卓应用,两种应用的APPID是不同的,而配置文件里只需要填一个,应该怎么弄啊?
2016-07-07 23:50
Element

Element

说错了,请问目前支持支付宝快捷登录了吗????? o(╯□╰)o
2016-06-28 10:46
Element

Element

请问目前支持支付宝支付了吗?????
2016-06-28 10:45
HGDQ

HGDQ

[《HTML5 WebApp开发(八)微信/QQ/新浪登录》]
http://blog.csdn.net/zhuming3834/article/details/51711492
2016-06-20 21:43
229637012@qq.com

229637012@qq.com

去掉所有的oauth登录怎么操作?
2016-06-01 15:55
今天吃什么

今天吃什么

第三方登录授权,android版本的可以,ios的不行了,以前ios是可以的,客服说打包后就可以了。望修复,未打包也可以。
2016-03-08 11:28
在路上

在路上

回复 DCloud_App_Array:
使用appsecret确实存在安全隐患,建议提供获取code的方法,由开发者自己通过服务器处理后续操作。并且如果appsecret被重置了,那么整个登陆就废了。
2015-12-15 22:46
SHQ

SHQ

在真机测试一切正常,打成APK,在手机上运行,提示用户取消,错误代码为-2,大家遇到过这种情况吗?如何解决?
2015-12-04 20:57
DCloud_App_Array

DCloud_App_Array (作者)

回复 Doveccl:
微信在调用登录SDK的逻辑中需要使用到appsecret值,所以需要配置好(目前没有发现appsecret存在安全隐患)。
这里提到签名先获取code方案暂时没有验证过,是新版微信SDK提供的功能吗?@DCloud_Android_磊子、@DCloud_iOS_XTY关注。
2015-11-19 11:24
DCloud_App_Array

DCloud_App_Array (作者)

回复 kira:
可以使用公用证书,使用公用证书填写的应用签名值参考:http://ask.dcloud.net.cn/article/68
这里已经公开了公用证书。
2015-11-19 11:17
Doveccl

Doveccl

回复 DCloud_App_Array:
纠正一下刚刚说法的问题,利用appid和签名先获取code,然后再请求自己的服务器获得token,
直接把appsecret写代码里很不安全对吧,有没有一种方法可以先获取code呢?
2015-11-17 15:44
Doveccl

Doveccl

回复 DCloud_App_Array:
只用appid和生成好的keystore文件在android studio下可以直接生成apk并成功授权登陆微信,
为什么这里一定要填写appsecret呢,有没有什么方法可以不填写呢?
2015-11-17 15:25
kira

kira

回复 DCloud_App_Array:
那是不是在在线打包的时候不能用公用证书,必须用自用证书,因为微信开放平台那边是填了包名和应用签名的
2015-11-14 03:17
DCloud_App_Array

DCloud_App_Array (作者)

回复 码农在奋斗:
微信登录配置的参数必须要提交在线打包才能生效(真机调试的时候使用的是HBuilder基座的参数)
2015-11-13 14:12
码农在奋斗

码农在奋斗

回复 AC米兰的小铁匠:
我也发现了,在真机测试的时候微信返回的Unionid跟我同一个开放平台里面的其他帐号都不一样的。只有在线打包后的apk,才可以获得正确的unionid。官方能来解释下吗???
2015-11-12 15:58
AC米兰的小铁匠

AC米兰的小铁匠

回复 DCloud_App_Array:
倒不是显示应用的问题,我发现配置的只有微博返回的openID是对的,和之前已有项目中获得的openID一致,QQ和微信返回的和我们之前已有的不一样,显然变成了两个应用。
2015-10-29 15:05
DCloud_App_Array

DCloud_App_Array (作者)

回复 AC米兰的小铁匠:
真机测试也可以登录,只是显示的应用是HBuilder
2015-10-28 16:03
AC米兰的小铁匠

AC米兰的小铁匠

不打包就不生效吗,那真机测试多恼火~~
2015-10-28 15:52
asdfasdf23r

asdfasdf23r

怎么扩展oauth?例如增加一个人人网登录
2015-10-12 15:35
huyong1978

huyong1978

配置文件中写的顺序:

"plugins": {
"oauth": {
"qq": {"appid": "1104222847"},
"sina":{"appkey":"3459130770","appsecret":"9d7e49092a72b863969addb816a1a7ec","redirect_uri":"http://wyzf.com.cn"},
"weixin":{"appid":"wxe73e9694a435ebb3","appsecret":"ff152bf73af6dff7f87ddb96f752eb65"}
},

代码中取值
plus.oauth.getServices(function(services) {
auths = services;
}, function(e) {
alert("获取认证服务列表失败:" + e.message + " - " + e.code);
});

打包后:

auths[0] 取出来是微博,auths[1] 是QQ,auths[2] 是微信 , 微博和微信的位置不正确

测试手机: 红米note ,联想 K860I
2015-07-28 15:23
PiscDong

PiscDong

回复 DCloud_App_Array:
Feature列表.xls中oauth的权限是MODIFY_AUDIO_SETTINGS,这个不是声音的设置权限吗?
2015-07-24 16:03
_AJian_

_AJian_

公众号可以吗?
2015-07-01 18:24
lewway

lewway

新浪的也要做下,加油
2015-04-27 23:07
DCloud_App_Array

DCloud_App_Array (作者)

回复 弄月:
参考文章:http://ask.dcloud.net.cn/article/38,根据提示及SDK中的“Feature列表.xls”文档进行配置
2015-04-01 15:56
DCloud_App_Array

DCloud_App_Array (作者)

回复 弄月:
App云端打包是根据配置的数据来动态添加对应的功能模块,所以需要配置多次,而在离线打包的时候配置一次即可。
2015-04-01 15:49
弄月

弄月

微信登陆跟微信分享是同一个appid跟appsecret,为什么登陆又要多配一次?
2015-04-01 12:35
弄月

弄月

那离线打包的呢?
2015-04-01 12:32