Kaynağa Gözat

获取公钥

FinalYu 2 yıl önce
ebeveyn
işleme
dd19d33e02

+ 39 - 0
chuanyi_client/src/permission.js

@@ -0,0 +1,39 @@
+import router from './router'
+import NProgress from 'nprogress'
+import 'nprogress/nprogress.css'
+import { getToken } from '@/utils/auth'
+
+NProgress.configure({showSpinner: false})
+
+const whiteList = ['/login']
+
+router.beforeEach((to, from, next) => {
+    NProgress.start()
+    if (getToken()) {
+        // to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
+        /* has token*/
+        if (to.path === '/login') {
+            next({path: '/'})
+            NProgress.done()
+        } else {
+            if (to.matched.length === 0) {
+                next('/404')
+                NProgress.done()
+            }
+            next()
+        }
+    } else {
+        // 没有token
+        if (whiteList.indexOf(to.path) !== -1) {
+            // 在免登录白名单,直接进入
+            next()
+        } else {
+            next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
+            NProgress.done()
+        }
+    }
+})
+
+router.afterEach(() => {
+    NProgress.done()
+})

+ 2 - 2
chuanyi_server/src/main/java/com/judong/chuanyiserver/controller/UserController.java

@@ -25,8 +25,8 @@ public class UserController {
      * @return
      */
     @GetMapping("/getCodeImage")
-    public Result getCodeImage() {
-        return userService.getCodeImage();
+    public Result getCodeImage(boolean hasPubKey) {
+        return userService.getCodeImage(hasPubKey);
     }
 
     /**

+ 1 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/UserService.java

@@ -73,5 +73,5 @@ public interface UserService {
 
     Result assignPermission(int roleId, List<Permission> permissionList);
 
-    Result getCodeImage();
+    Result getCodeImage(boolean hasPubKey);
 }

+ 4 - 1
chuanyi_server/src/main/java/com/judong/chuanyiserver/service/impl/UserServiceImpl.java

@@ -46,7 +46,7 @@ public class UserServiceImpl implements UserService {
     private UserUtil userUtil;
 
     @Override
-    public Result getCodeImage() {
+    public Result getCodeImage(boolean hasPubKey) {
         JSONObject jsonObject = new JSONObject();
         // 定义图形验证码的长、宽、验证码字符数、干扰线宽度
         ShearCaptcha captcha = CaptchaUtil.createShearCaptcha(126, 40, 4, 4);
@@ -61,6 +61,9 @@ public class UserServiceImpl implements UserService {
         redisUtil.set(sessionId + "-captcha", captchaCode, ConstantStr.ONE_MINUTE);
         jsonObject.put("uid", sessionId);
         jsonObject.put("verifyCode", captcha.getImageBase64());
+        if (hasPubKey) {
+            jsonObject.put("publicKey", RSAUtil.PUBLIC_KEY);
+        }
         return Result.ok(jsonObject);
     }