由于uniapp文档不够详细,在打包安卓APP时微信登录要填写appid和appsecret,但微信开发平台文档不建议把appsecret公开保存,所以踩了这个大坑,卡了我大半天;
1. 先申请和认证微信开放平台
提交相关资料,等待微信审核。(大约1-2天)
2.配置manifest.json
微信审核通过后可以拿到appid和appsecret。用HBuilderX打开项目manifest.json,在 APP模块配置
>勾选OAuth(登录鉴权)
>勾选微信登录
并填写appid,仅填写appid,勿填appsecret,勿填appsecret,勿填appsecret!!!重要的事情说三遍,appsecret泄露会有很严重的问题!
3.微信登录按钮点击事件
/**
* 微信登录 点击事件
*/
wxLogin(){
let that = this;
plus.oauth.getServices(function(services){
let auths = {};
for(let item of services){
auths[item.id] = item;
}
let aweixin = auths['weixin'];
if(!auths['weixin']){
// 用户还未安装微信,TODO:
return false;
}
aweixin.authorize(function(e){
console.log("微信登录成功后获取到的code值 =>",e.code);
// TODO: 将 e.code提交给后端获取unionid并登录
// 后端api请求url: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
// url上APPID替换为第一步申请的appid
// SECRET替换为第一步申请的appsecret
// CODE则填写前端授权成功获取到的code值
}, function(e) {
//微信登录授权失败事件,可能是用户拒绝授权
},{
scope: 'snsapi_userinfo',
appid: "这里填写你第一步申请的appid",
});
}, function(e) {
//获取服务授权列表失败
});
}
- 相关文档:
- 微信登录开发指南:微信开放平台文档
- h5Plus登录鉴权相关文档: https://www.html5plus.org/doc/zh_cn/oauth.html