简体中文
此文档为App端登录说明,H5和小程序端详情
申请开通
微信登录功能,根据页面提示填写资料,提交审核更多信息详见微信官方文档 移动应用微信登录开放指南
打开项目的manifest.json文件,在“App模块配置”项的“OAuth(登录鉴权)”下,勾选“微信登录”:
注意
示例代码
uni.login({
"provider": "weixin",
"onlyAuthorize": true, // 微信登录仅请求授权认证
success: function(event){
const {code} = event
//客户端成功获取授权临时票据(code),向业务服务器发起登录请求。
uni.request({
url: 'https://www.example.com/loginByWeixin', //仅为示例,并非真实接口地址。
data: {
code: event.code
},
success: (res) => {
//获得token完成登录
uni.setStorageSync('token',res.token)
}
});
},
fail: function (err) {
// 登录授权失败
// err.code是错误码
}
})
相关API文档: uni.login,uni.request
var weixinOauth = null;
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
// 获取微信登录对象
if (service.id == 'weixin') {
weixinOauth = service;
break;
}
}
weixinOauth.authorize( function(event){
const {code} = event
//客户端成功获取授权临时票据(code),向业务服务器发起登录请求。
uni.request({
url: 'https://www.example.com/loginByWeixin', //仅为示例,并非真实接口地址。
data: {
code: event.code
},
success: (res) => {
//获得token完成登录
uni.setStorageSync('token',res.token)
}
});
}, function(err) {
// 登录授权失败
// err.code是错误码
})
}, function(err) {
// 获取 services 失败
})
HBuilderX中配置的appsecret参数,云端打包后会保存在apk/ipa中,存在参数泄露的风险!HBuilderX3.4.18+ 不再提供此参数的可视化配置。
对于安全性要求较低的开发者,可以通过manifest.json -> 源码视图 -> app-plus -> distribute -> sdkConfigs -> oauth -> weixin -> 添加appsecret 配置。即可不经业务服务器验证完成登录:
weixin
uni.login({
provider: 'weixin',
success: function (loginRes) {
// 登录成功
uni.getUserInfo({
provider: 'weixin',
success: function(info) {
// 获取用户信息成功, info.authResult保存用户信息
}
})
},
fail: function (err) {
// 登录授权失败
// err.code是错误码
}
});
var weixinOauth = null;
plus.oauth.getServices(function(services) {
for (var i in services) {
var service = services[i];
// 获取微信登录对象
if (service.id == 'weixin') {
weixinOauth = service;
break;
}
}
weixinOauth.login( function(oauth){
// 授权成功,weixinOauth.authResult 中保存授权信息
}, function(err) {
// 登录授权失败
// err.code是错误码
})
}, function(err) {
// 获取 services 失败
})