运行环境

jdk1.8+eclipse+tomact 8.5+maven3.5+springboot 2.0.1 微信开发者工具

数据库

一张表三个字段

CREATE TABLE `user` (`uid` varchar(50) NOT NULL,`username` varchar(50) NOT NULL,`password` varchar(50) NOT NULL,PRIMARY KEY (`uid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
整体目录结构

实现注册代码
@Autowiredprivate Userservice userservice;//用户注册@PostMapping("/register")public JsonResult register(@RequestBody User user) {System.out.println("进来了……");System.out.println(user.getUsername());//判断用户名和密码不为空if(StringUtils.isBlank(user.getUsername()) || StringUtils.isBlank(user.getPassword()) ) {return JsonResult.errorMsg("用户名和密码不能为空");}//判断用户名是否存在if(!userservice.findUsernameIsExist(user.getUsername())) {userservice.saveUser(user);}else {return JsonResult.errorMsg("用户名已存在,请换一个再试");}user.setPassword("");//不显示密码 return JsonResult.buildData(user);}
实现普通登录代码
//用户登录@PostMapping("/login")public JsonResult login(@RequestBody User user) {String username = user.getUsername();String password = user.getPassword();//判断用户名和密码不为空if(StringUtils.isBlank(username) || StringUtils.isBlank(password) ) {return JsonResult.errorMsg("用户名和密码不能为空");}//判断用户名是否存在  返回值类型为UserUser userReslut=userservice.queryUserForLogin(username,password);if(userReslut != null) {userReslut.setPassword("");return JsonResult.buildData(userReslut);}else {return JsonResult.errorMsg("用户名或密码不正确");}     }

实现微信登录代码

//微信登录@PostMapping("/wxLogin")public JsonResult wxLogin(String code) {System.out.println("code:" + code);
//      登录凭证校验。通过 wx.login 接口获得临时登录凭证 code 后传到开发者服务器调用此接口完成登录流程
//      请求地址
//      GET https://api.weixin.qq.com/sns/jscode2session?
//              appid=APPID&
//              secret=SECRET&
//              js_code=JSCODE&
//              grant_type=authorization_codeString url = "https://api.weixin.qq.com/sns/jscode2session";Map<String, String> param = new HashMap<>();param.put("appid", "你的appid");param.put("secret", "你的开发者秘钥");param.put("js_code", code);param.put("grant_type", "authorization_code");//发起get请求String wxResult = HttpClientUtil.doGet(url, param);System.out.println(wxResult);return JsonResult.buildData("微信登录成功");}

小程序端登录界面

小程序端登录js

//普通登录doLogin: function (e) {var formObject = e.detail.value;//console.log(formObject);var username = formObject.username;var password = formObject.password;//简单验证if (username.length == 0 || password.length == 0) {wx.showToast({title: '用户名或密码不能为空',icon: 'none',duration: 3000})} else {var serverUrl = app.serverUrl;wx.request({url: serverUrl + '/login',method: "POST",data: {username: username,password: password},header: {'content-type': 'application/json' //默认值},success: function (res) {console.log(res.data);var status = res.data.status;if (status == 200) {//登录成功wx.showToast({title: "登录成功",icon: 'success',duration: 3000})} else {wx.showToast({title: res.data.msg,icon: 'none',duration: 3000})}}})}},

小程序端微信登录js

// 微信登录  goWxLogin: function (e) {console.log(e.detail.errMsg)console.log(e.detail.userInfo)console.log(e.detail.rawData)wx.login({success: function (res) {console.log(res)// 获取登录的临时凭证var code = res.code;// 调用后端,获取微信的session_key, secretvar serverUrl = app.serverUrl;wx.request({url: serverUrl +"/wxLogin?code=" + code,method: "POST",success: function (result) {console.log(result);// 保存用户信息到本地缓存,可以用作小程序端的拦截器//app.setGlobalUserInfo(e.detail.userInfo);wx.redirectTo({url: '../register/register',})}})}})},

小程序端注册js

//注册doRegister: function(e){var formObject=e.detail.value;console.log(formObject);var username = formObject.username;var password = formObject.password;console.log(username.length);//简单验证if (username.length == 0 || password.length == 0){wx.showToast({title: '用户名或密码不能为空',icon: 'none',duration: 3000})}else{var serverUrl=app.serverUrl;wx.request({url: serverUrl+'/register',method: "POST",data: {username: username,password: password},header:{'content-type': 'application/json' //默认值},success: function(res){console.log(res.data);var status=res.data.status;if(status == 200){wx.showToast({title: "注册成功",icon: 'none',duration: 3000})wx.redirectTo({url: '../login/login',})}else {wx.showToast({title: res.data.msg,icon: 'none',duration: 3000})}}})}},

到此主要代码结束,功能算是实现了,还有很多需要完善得地方,奥力给 ~

完整代码已上传至github,有需要的小伙伴自取
传送门

Springboot实现微信小程序注册登录及微信登录相关推荐

  1. 微信小程序注册入口及流程(完整版教程)

    微信小程序注册是免费的,在腾讯云微信公众平台即可注册,无论是个人.企业都可以免费注册微信小程序,先输入邮箱注册激活,然后填写主体类型对应的证件信息,最后管理员身份验证使用维信扫一扫即可,小程序5来详细 ...

  2. 微信小程序注册方法分享【小程序注册】

    随着移动互联网的发展,微信小程序已经成为了人们日常生活中不可或缺的一部分.如果你想要注册一个微信小程序,那么就必须要了解微信小程序注册方法.下面给大家分享微信小程序注册方法. 微信小程序注册其实主要分 ...

  3. 微信小程序-注册登录功能-本地数据保存-页面数据交替

    Title:微信小程序-注册登录功能-本地数据保存-页面数据交替 完美-小程序登录注册功能.rar-- 访问码:yqa5 1.主页面 主页面login.js代码 // pages/login/logi ...

  4. 万能门店小程序_超市门店微信小程序注册流程

    现在超市门店商家利用小程序卖货已经非常普遍,小程序可以便捷地连接线上线下通道,让商家不再局限于门店周围的流量,能够从微信获取更多客户,从而提升销量和店铺知名度.超市要想有自己的线上电商小程序,就得先注 ...

  5. 微信小程序学习笔记02:微信小程序注册

    文章目录 零.学习目标 一.小程序注册方法 1.注册 2.登录 二.小程序开发工具 1.下载开发工具 2.安装开发工具 3.启动开发工具 三.创建第一个小程序 1.启动开发者工具 2.新建项目 3.模 ...

  6. 微信授权绑定手机号 java_微信小程序获取手机号授权用户登录功能

    小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写. 1.getPhoneNumber这个组件通过button来实现(别的标签无 ...

  7. 仅需三步完成微信小程序注册

    因为自己做些项目,所以边做边整理一些笔记,方便随时查阅及后期内容补充. 微信小程序注册步骤分为三步: 1,帐号信息 2,邮箱激活 3,信息登记 1,帐号信息-进入微信公众平台官方网址,填写账号信息,注 ...

  8. 微信小程序注册/登陆,若依后台获取token

    微信小程序注册/登陆,若依后台获取token 后端接口: @ApiOperation(value = "小程序登入", httpMethod = "POST") ...

  9. 微信小程序-注册成为小程序开发者

    微信小程序-注册成为小程序开发者 #登录微信公众平台 htttps://mp.weixin.qq.com 注册账号 选择小程序 填写账户信息 这里需要注意:每个邮箱只能申请一个小程序,且该邮箱将作为登 ...

  10. 微信小程序账号长时间未登录冻结解封

    微信小程序账号长时间未登录冻结解封 1.账号找回链接[官方]:http://mp.weixin.qq.com/acct/findacct?action=scan 2.按照官方指引的三个操作步骤进操作, ...

最新文章

  1. SAP MM PR 审批中的REJECT
  2. 转发:Hekaton:SQL Server集成的内存事务处理
  3. 网络安全比赛理论答题(四)
  4. 【最新合集】PAT乙级最优题解(题解+解析+代码)
  5. 想给男友一个惊喜,没想到是这样的结局......
  6. 【绘图】matlab绘制图形
  7. Java selenium和python_c#和Java和python设置selenium超时时间
  8. 智学网显示服务器开小差了,小学习语文学习技巧三字口诀,学习语文更容易了!...
  9. AxureUX中后台管理信息系统通用原型方案 v2 (全新AxureRP8作品 )
  10. 如何根据关键字批量获取淘宝联盟中的商品图片
  11. 补阳气吃什么 补阳气的食物
  12. elementui messagebox没有取消按钮
  13. Tomat报错 The APR based Apache Tomcat Native library which allows optimal performance in production
  14. Matplotlib 绘制条形图
  15. 大学计算机学cad的,征文通知:第二十二届中国计算机辅助设计与图形学(CADCG 2019)学术会议...
  16. 计算两个向量的逆时针夹角
  17. Matlab滤波器设计——基于filter函数的低通、高通、带通、带阻滤波器
  18. 详讲全排列算法,及解决数字搭积木问题
  19. Win未检测出摄像头
  20. 熵、图像熵的意义及计算方法

热门文章

  1. 深度解密京东登月平台基础架构
  2. C语言二分查找代码及解析
  3. 腾讯的h5制作工具教程
  4. 多媒体杂谈--有点乱后继整理
  5. 2023美赛思路 | 2023美赛C题Matlab代码
  6. python开源ip代理池_[技术]基于python实现的短效代理ip池程序
  7. hdu 2955 01背包
  8. 来自一位程序员的经验之谈(三)
  9. C++实践参考解答 个人所得税计算器
  10. [Ansible系列]ansible tag介绍