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();

}

    }

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容