java springboot微信小程序授权登录
今天给大家分享一个java开发的小程序授权登录实例,希望对大家有帮助
首先我们学习任何东西一定要看官方文档
小程序授权登录业务流程图
功能截图

前端代码
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
success: (resUser) => {
app.register(resUser.userInfo, function(res){
if(res == 0){
wx.navigateBack({
delta: 0,
})
}
})
},
fail: function(res){
}
})
var that = this;
wx.login({
success: function (res) {
var code = res.code; // 微信登录接口返回的 code 参数,下面注册接口需要用到
// 下面开始调用注册接口
wx.request({
url: that.globalData.domain + '/api/wechat/register',
data: {
code: code,
avatarUrl: userInfo.avatarUrl,
nickname: userInfo.nickName,
gender: userInfo.gender
}, // 设置请求的 参数
success: (res) => {
if (res.data.code == 0) {
wx.hideLoading();
that.login(callback);
} else {
// 登录错误
wx.hideLoading();
wx.showModal({
title: '提示',
content: '无法登录,请重试',
showCancel: false
})
}
}
})
}
})
后端代码
/**
* 用户注册
*/
@AuthIgnore
@GetMapping("register")
public R register(String avatarUrl, String nickname, String gender, String code) {
try {
String openid = this.wxService.getUserService().getSessionInfo(code).getOpenid();
//查询用户信息
MemberEntity user = memberService.queryByOpenid(openid);
if(user != null) {
return R.ok();
}
//注册
MemberEntity member = new MemberEntity();
member.setAvatarUrl(avatarUrl);
member.setOpenid(openid);
member.setNickname(filterUtf8mb4(nickname));
member.setGender(gender);
member.setCreateTime(new Date());
memberService.save(member);
return R.ok();
} catch (WxErrorException e) {
e.printStackTrace();
return R.error();
}
}