失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Springboot实现微信小程序注册登录及微信登录

Springboot实现微信小程序注册登录及微信登录

时间:2022-06-16 09:17:39

相关推荐

Springboot实现微信小程序注册登录及微信登录

运行环境

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./sns/jscode2session?//appid=APPID&//secret=SECRET&//js_code=JSCODE&//grant_type=authorization_codeString url = "https://api./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实现微信小程序注册登录及微信登录》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。