将请求
login.vue
<template><view><image src="../../static/img/152x152.png" class="logo" mode=""></image><!--open-type='getUserInfo' 一定要写这个,不让获取不到微信用户的信息 --><button class="btn" @tap="handleTap" open-type='getUserInfo'>立即前往</button></view></template><script>export default {data() {return {};},methods:{handleTap:function(){let ref=this;//uni.login 获取微信平台返回的codeuni.login({success:function(resp){// console.log(resp)let code=resp.code;//获取微信用户的信息 uni.getUserInfouni.getUserInfo({success:function(resp){// console.log(resp)let rawData = JSON.parse(resp.rawData);let nickName = rawData.nickName; //昵称let avatarUrl = rawData.avatarUrl; //头像//发起ajax请求uni.request({//这里是全局变量,全局变量定义在main.js文件中url: ref.url.login,method:"post",data:{"code":code,"nickName":nickName,"photo":avatarUrl},success:function(resp){let token=resp.data.data.token;let expire=resp.data.data.expire;//保存到storage,无论是哪个页面都可以访问到,storage里存的数据是全局的uni.setStorageSync("token",token);uni.setStorageSync("expire",expire);console.log("================");console.log(token);console.log(expire);//页面跳转uni.switchTab({url:"/pages/index/index"})}})}})}})}},onLoad:function(){//检验系统的版本var ref = this;uni.getSystemInfo({success: function(res) {let OS = null;if (res.platform == "devtools") {OS = "PC"} else if (res.platform == "ios") {OS = "iOS"} else if (res.platform == "android") {OS = "安卓"}// console.log(OS)uni.setStorageSync("OS", OS);}})}}</script><style lang="less">@import url("login.less");</style>
UserServiceImpl.java
@Overridepublic Map<String, Object> wxLogin(WechatLoginDTO dto) {HashMap map = new HashMap();map.put("appid", appId); //app_idmap.put("secret", appSecret); //app_secretmap.put("js_code", dto.getCode()); //微信codemap.put("grant_type", "authorization_code"); // 默认参数String response = HttpUtil.post(UrlConstant.WECHAT_LOGIN, map);JSONObject json = JSONUtil.parseObj(response);String openId = json.get("openid", String.class);String sessionKey = json.get("session_key", String.class);// System.out.println(openId);// System.out.println(sessionKey);if (openId == null || openId.length() == 0) {throw new RenException("open_id不存在");}UserEntity user = new UserEntity();user.setOpenId(openId);QueryWrapper wrapper = new QueryWrapper();wrapper.setEntity(user);int count = baseDao.selectCount(wrapper);System.out.println(count);if (count == 0) {// Snowflake snowflake=new Snowflake();user = new UserEntity();user.setId(IdWorker.getId());user.setOpenId(openId);user.setNickName(dto.getNickName());user.setPhoto(dto.getPhoto());baseDao.insert(user);}user = new UserEntity();user.setOpenId(openId);wrapper = new QueryWrapper(user);user = baseDao.selectOne(wrapper);//获取登录tokenTokenEntity tokenEntity = tokenService.createToken(user.getId());Map<String, Object> map2 = new HashMap<>(2);map2.put("token", tokenEntity.getToken());map2.put("expire", tokenEntity.getExpireDate().getTime() - System.currentTimeMillis());return map2;}
