今天給大家分享一個(gè)java開(kāi)發(fā)的小程序授權(quán)登錄實(shí)例廊遍,希望對(duì)大家有幫助
首先我們學(xué)習(xí)任何東西一定要看官方文檔
小程序授權(quán)登錄業(yè)務(wù)流程圖
功能截圖
?前端代碼
wx.getUserProfile({
? ? ? desc: '用于完善會(huì)員資料', // 聲明獲取用戶個(gè)人信息后的用途奸攻,后續(xù)會(huì)展示在彈窗中斤儿,請(qǐng)謹(jǐn)慎填寫
? ? ? 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 參數(shù)筛圆,下面注冊(cè)接口需要用到
? ? ? ? // 下面開(kāi)始調(diào)用注冊(cè)接口
? ? ? ? wx.request({
? ? ? ? ? url: that.globalData.domain + '/api/wechat/register',
? ? ? ? ? data: {
? ? ? ? ? ? code: code,
? ? ? ? ? ? avatarUrl: userInfo.avatarUrl,
? ? ? ? ? ? nickname: userInfo.nickName,
? ? ? ? ? ? gender: userInfo.gender
? ? ? ? ? }, // 設(shè)置請(qǐng)求的 參數(shù)
? ? ? ? ? success: (res) => {
? ? ? ? ? ? if (res.data.code == 0) {
? ? ? ? ? ? ? wx.hideLoading();
? ? ? ? ? ? ? that.login(callback);
? ? ? ? ? ? } else {
? ? ? ? ? ? ? // 登錄錯(cuò)誤
? ? ? ? ? ? ? wx.hideLoading();
? ? ? ? ? ? ? wx.showModal({
? ? ? ? ? ? ? ? title: '提示',
? ? ? ? ? ? ? ? content: '無(wú)法登錄道伟,請(qǐng)重試',
? ? ? ? ? ? ? ? showCancel: false
? ? ? ? ? ? ? })
? ? ? ? ? ? }
? ? ? ? ? }
? ? ? ? })
? ? ? }
? ? })
后端代碼
/**
? ? * 用戶注冊(cè)
? ? */
? ? @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();
? ? ? ? ? ? }
//注冊(cè)
? ? ? ? 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();
}
? ? }