Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

wrh před 2 roky
rodič
revize
67cdd0a8e7

+ 14 - 9
nngkxxdp/src/main/java/com/example/nngkxxdp/filters/LoginFilter.java

@@ -42,17 +42,22 @@ public class LoginFilter implements Filter {
         System.err.println(req.getRequestURL());
         // mini是小程序接口
         if (req.getRequestURL().indexOf("/mini/") > 0) {
-            if (Blank.isNotEmpty(req.getHeader(MiniConstant.MINI_TOKEN))
-                && MiniTokenUtil.verify(req.getHeader(MiniConstant.MINI_TOKEN))) {
+            // 登陆
+            if (req.getServletPath().equals("/mini/login")) {
                 chain.doFilter(req, response);
             } else {
-                response.setCharacterEncoding("utf-8");
-                response.setContentType("text/html; charset=utf-8");
-                PrintWriter writer = response.getWriter();
-                writer.write(JSON.toJSONString(SendUtil.send(false, "请重新登陆"), SerializerFeature.WriteMapNullValue));
-                writer.flush();
-                writer.close();
-                return;
+                if (Blank.isNotEmpty(req.getHeader(MiniConstant.MINI_TOKEN))
+                    && MiniTokenUtil.verify(req.getHeader(MiniConstant.MINI_TOKEN))) {
+                    chain.doFilter(req, response);
+                } else {
+                    response.setCharacterEncoding("utf-8");
+                    response.setContentType("text/html; charset=utf-8");
+                    PrintWriter writer = response.getWriter();
+                    writer.write(JSON.toJSONString(SendUtil.send(false, "请重新登陆"), SerializerFeature.WriteMapNullValue));
+                    writer.flush();
+                    writer.close();
+                    return;
+                }
             }
         } else {
             if (req.getRequestURI().indexOf("/mapdata/page") > 0) {

+ 1 - 1
nngkxxdp/src/main/java/com/example/nngkxxdp/program/controller/LoginController.java

@@ -25,7 +25,7 @@ public class LoginController {
     private final MiniLoginService miniLoginService;
 
     @PostMapping("/login")
-    public Map<String, Object> login(@RequestParam String code) {
+    public Map<String, Object> login(@RequestBody String code) {
         if (StrUtil.isEmpty(code)) {
             return SendUtil.send(false, MiniConstant.CODE_ERROR, "");
         }

+ 53 - 46
nngkxxdp/src/main/java/com/example/nngkxxdp/program/service/Impl/MiniLoginServiceImpl.java

@@ -1,24 +1,26 @@
 package com.example.nngkxxdp.program.service.Impl;
 
-import cn.hutool.core.convert.Convert;
-import cn.hutool.core.lang.UUID;
-import cn.hutool.core.util.ObjectUtil;
-import cn.hutool.http.HttpUtil;
-import cn.hutool.json.JSONObject;
+import static com.example.nngkxxdp.program.constant.MiniConstant.LOGIN_HLW;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
 import com.example.nngkxxdp.program.constant.MiniConstant;
 import com.example.nngkxxdp.program.dao.AppletUserDao;
 import com.example.nngkxxdp.program.entity.AppletUser;
 import com.example.nngkxxdp.program.service.MiniLoginService;
 import com.example.nngkxxdp.program.util.MiniTokenUtil;
 import com.example.nngkxxdp.util.SendUtil;
-import lombok.RequiredArgsConstructor;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.Map;
-
-import static com.example.nngkxxdp.program.constant.MiniConstant.LOGIN_HLW;
+import cn.hutool.core.convert.Convert;
+import cn.hutool.core.lang.UUID;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONObject;
+import lombok.RequiredArgsConstructor;
 
 /**
  * description: 登陆
@@ -42,43 +44,48 @@ public class MiniLoginServiceImpl implements MiniLoginService {
      */
     @Override
     public Map<String, Object> login(String code) {
-        Map<String, Object> requestParameters = new HashMap<>(5);
-        requestParameters.put("appid", MiniConstant.APPID);
-        requestParameters.put("secret", MiniConstant.SECRET);
-        requestParameters.put("js_code", code);
-        requestParameters.put("grant_type", MiniConstant.GRANR_TYPE);
-        String s = HttpUtil.get(MiniConstant.LOGIN, requestParameters);
-        System.err.println(s);
-        JSONObject jsonObject = new JSONObject(s);
-        if (ObjectUtil.isNotEmpty(jsonObject.get("errcode"))) {
-            return SendUtil.send(false, "", jsonObject);
-        }
-        Map<String, Object> parameters = new HashMap<>(5);
-        parameters.put("unionId", Convert.toStr(jsonObject.get("openid")));
-        String s1 = HttpUtil.get(address + LOGIN_HLW, parameters);
-        JSONObject userinfo = new JSONObject(s1);
+        try {
+            Map<String, Object> requestParameters = new HashMap<>(5);
+            requestParameters.put("appid", MiniConstant.APPID);
+            requestParameters.put("secret", MiniConstant.SECRET);
+            requestParameters.put("js_code", code);
+            requestParameters.put("grant_type", MiniConstant.GRANR_TYPE);
+            String s = HttpUtil.get(MiniConstant.LOGIN, requestParameters);
+            System.err.println(s);
+            JSONObject jsonObject = new JSONObject(s);
+            if (ObjectUtil.isNotEmpty(jsonObject.get("errcode"))) {
+                return SendUtil.send(false, "", jsonObject);
+            }
+            Map<String, Object> parameters = new HashMap<>(5);
+            parameters.put("unionId", Convert.toStr(jsonObject.get("openid")));
+            String s1 = HttpUtil.get(address + LOGIN_HLW, parameters);
+            JSONObject userinfo = new JSONObject(s1);
 
-        AppletUser appletUser = new AppletUser();
-        appletUser.setId(UUID.randomUUID().toString());
-        appletUser.setSessionKey(Convert.toStr(jsonObject.get("session_key")));
-        appletUser.setOpenid(Convert.toStr(jsonObject.get("openid")));
-        appletUser.setNickName(Convert.toStr(userinfo.get("nickName")));
-        appletUser.setImgUrl(Convert.toStr(userinfo.get("imgUrl")));
-        appletUser.setUserId(Convert.toLong(userinfo.get("userId")));
-        appletUser.setSex(Convert.toInt(userinfo.get("sex")));
+            AppletUser appletUser = new AppletUser();
+            appletUser.setId(UUID.randomUUID().toString());
+            appletUser.setSessionKey(Convert.toStr(jsonObject.get("session_key")));
+            appletUser.setOpenid(Convert.toStr(jsonObject.get("openid")));
+            appletUser.setNickName(Convert.toStr(userinfo.get("nickName")));
+            appletUser.setImgUrl(Convert.toStr(userinfo.get("imgUrl")));
+            appletUser.setUserId(Convert.toLong(userinfo.get("userId")));
+            appletUser.setSex(Convert.toInt(userinfo.get("sex")));
 
-        AppletUser info = appletUserDao.queryByUserId(appletUser.getUserId());
-        if (ObjectUtil.isNotEmpty(info)) {
-            info.setToken(appletUser.getToken());
-            info.setNickName(appletUser.getNickName());
-            info.setImgUrl(appletUser.getImgUrl());
-            info.setSex(appletUser.getSex());
-            appletUserDao.update(info);
+            AppletUser info = appletUserDao.queryByUserId(appletUser.getUserId());
+            if (ObjectUtil.isNotEmpty(info)) {
+                info.setToken(appletUser.getToken());
+                info.setNickName(appletUser.getNickName());
+                info.setImgUrl(appletUser.getImgUrl());
+                info.setSex(appletUser.getSex());
+                appletUserDao.update(info);
+            }
+            appletUserDao.add(appletUser);
+            // 生成token
+            String token = MiniTokenUtil.generateToken(appletUser.getId(), appletUser.getNickName(), 60 * 24);
+            return SendUtil.send(true, "", token);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return SendUtil.send(false, "登陆失败");
         }
-        appletUserDao.add(appletUser);
-        // 生成token
-        String token = MiniTokenUtil.generateToken(appletUser.getId(), appletUser.getNickName(), 60 * 24);
-        return SendUtil.send(true, "", token);
     }
 
     @Override

+ 1 - 1
nngkxxdp/src/main/resources/static/nnzwminiapp/pages/api/request.js

@@ -1,4 +1,4 @@
-const baseUrl = "http://localhost:7777/mini/"
+const baseUrl = "http://localhost:7777/mini"
 let token = wx.getStorageSync('token')
 
 const request = (options) => {

+ 9 - 0
nngkxxdp/src/main/resources/static/nnzwminiapp/pages/api/user-api.js

@@ -0,0 +1,9 @@
+import request from './request.js'
+
+export function login(data) {
+  return request({
+    url: `/login`,
+    method: 'POST',
+    data: data
+  })
+}

+ 46 - 45
nngkxxdp/src/main/resources/static/nnzwminiapp/pages/index/index.js

@@ -1,59 +1,60 @@
 // index.js
+import {
+  login
+} from "../api/user-api";
+
 // 获取应用实例
 const app = getApp()
 
 Page({
-  data: {
-    motto: 'Hello World',
-    userInfo: {},
-    hasUserInfo: false,
-    canIUse: wx.canIUse('button.open-type.getUserInfo'),
-    canIUseGetUserProfile: false,
-	canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName')
-	// 如需尝试获取用户信息可改为false
-  },
+  data: {},
 
-
-  onReady() {
-	  	console.log(1);
-		if (typeof this.getTabBar === 'function' &&
-		this.getTabBar()) {
-			this.getTabBar().setData({
-			selected: 0
-			})
-		}
-	},
-  bindViewTap() {
-    wx.navigateTo({
-      url: '/pages/myCenter/myCenter'
-    })
-  },
-  onShow(){
-		if (typeof this.getTabBar === 'function' &&
-		this.getTabBar()) {
-		this.getTabBar().setData({
-		selected: 0
-		})
-	}
-  },
+  onReady() {},
+  onShow() {},
   onLoad() {
-    if (wx.getUserProfile) {
-      this.setData({
-        canIUseGetUserProfile: true
-      })
-    }
+    // wx.login({
+    //   success(res) {
+    //     if (res.code) {
+    //       //发起网络请求
+    //       login(res.code).then(res => {
+    //         console.log(res)
+    //         wx.setStorageSync("token", res.data.data)
+    //       })
+    //     } else {
+    //       console.log('登录失败!' + res.errMsg)
+    //     }
+    //   }
+    // })
   },
-  getUserProfile(e) {
-    // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认,开发者妥善保管用户快速填写的头像昵称,避免重复弹窗
+  getUserProfile() {
+    wx.setStorageSync('nickname', "");
+    wx.setStorageSync('avatarUrl', "");
     wx.getUserProfile({
-      desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
+      desc: '获取用户信息',
       success: (res) => {
-        console.log(res)
-        this.setData({
-          userInfo: res.userInfo,
-          hasUserInfo: true
+        wx.setStorageSync('nickname', res.userInfo.nickName);
+        wx.setStorageSync('avatarUrl', res.userInfo.avatarUrl);
+        wx.login({
+          success(res) {
+            if (res.code) {
+              //发起网络请求
+              data = {
+                code: res.code
+              }
+              login(data).then(res => {
+                console.log(res)
+                wx.setStorageSync("token", res.data.data)
+              })
+            } else {
+              console.log('登录失败!' + res.errMsg)
+            }
+          }
         })
+      },
+      fail(res) {
+        console.log("获取用户信息失败", res)
       }
     })
   }
-})
+
+})

+ 0 - 8
nngkxxdp/src/main/resources/static/nnzwminiapp/pages/index/index.wxml

@@ -1,12 +1,4 @@
 <!--index.wxml-->
 <view class="container">
-  <view class="userinfo" bindtap="gotoshitang">
-    <block wx:if="{{canIUseOpenData}}">
-      <view class="userinfo-avatar" bindtap="bindViewTap">
-        <open-data type="userAvatarUrl" ></open-data>
-      </view>
-      <open-data type="userNickName"></open-data>
-    </block>
-  </view>
 </view>