Explorar el Código

edit auth api

tycoding hace 1 año
padre
commit
786ca1b148

+ 21 - 14
langchat-auth/src/main/java/cn/tycoding/langchat/auth/endpoint/AuthEndpoint.java

@@ -1,7 +1,5 @@
 package cn.tycoding.langchat.auth.endpoint;
 
-import static cn.tycoding.langchat.common.constant.CacheConst.AUTH_SESSION_PREFIX;
-
 import cn.dev33.satoken.stp.SaTokenInfo;
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.date.DatePattern;
@@ -20,21 +18,14 @@ import cn.tycoding.langchat.upms.service.SysUserService;
 import cn.tycoding.langchat.upms.utils.AuthUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.data.redis.core.StringRedisTemplate;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.*;
+
+import static cn.tycoding.langchat.common.constant.CacheConst.AUTH_SESSION_PREFIX;
 
 /**
  * @author tycoding
@@ -55,6 +46,18 @@ public class AuthEndpoint {
         if (StrUtil.isBlank(user.getUsername()) || StrUtil.isBlank(user.getPassword())) {
             throw new ServiceException("用户名或密码为空");
         }
+
+        if (user.getUsername().equals(AuthUtil.ADMINISTRATOR)) {
+            String encodePass = AuthUtil.encode(authProps.getSaltKey(), user.getPassword());
+            if (authProps.getAdminPass().equals(encodePass)) {
+                UserInfo userInfo = new UserInfo();
+                userInfo.setId(System.currentTimeMillis());
+                userInfo.setUsername(user.getUsername());
+                userInfo.setPassword(user.getPassword());
+                return onLogin(userInfo);
+            }
+        }
+
         UserInfo userInfo = userService.info(user.getUsername());
         if (userInfo == null) {
             throw new ServiceException("用户名或密码错误");
@@ -65,6 +68,10 @@ public class AuthEndpoint {
             throw new ServiceException("用户名或密码错误");
         }
 
+        return onLogin(userInfo);
+    }
+
+    private R onLogin(UserInfo userInfo) {
         StpUtil.login(userInfo.getId());
         SaTokenInfo tokenInfo = StpUtil.getTokenInfo();
         StpUtil.getSession()

+ 3 - 8
langchat-common/src/main/java/cn/tycoding/langchat/common/properties/AuthProps.java

@@ -22,19 +22,14 @@ public class AuthProps {
     private EmailProps email = new EmailProps();
 
     /**
-     * password
+     * salt
      */
     private String saltKey = "langchat-salt";
 
     /**
-     * administrator account username;
+     * administrator account password: 123456
      */
-    private String adminName = "administrator";
-
-    /**
-     * administrator account password
-     */
-    private String adminPass = "123456";
+    private String adminPass = "48kQD0O/A69LENSbk/+FxA==";
 
     /**
      * 是否开启演示环境

+ 1 - 2
langchat-server/src/main/resources/application-dev.yml

@@ -25,8 +25,7 @@ spring:
 
 langchat:
   auth:
-    admin-name: administrator
-    admin-pass: 123456
+    admin-pass: 48kQD0O/A69LENSbk/+FxA==
     is-demo-env: true
   vectorstore:
     pgvector:

+ 10 - 0
langchat-server/src/test/java/cn/tycoding/langchat/AppTest.java

@@ -1,8 +1,11 @@
 package cn.tycoding.langchat;
 
+import cn.tycoding.langchat.common.properties.AuthProps;
+import cn.tycoding.langchat.upms.utils.AuthUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
@@ -15,9 +18,16 @@ import org.springframework.test.context.junit4.SpringRunner;
 @SpringBootTest
 public class AppTest {
 
+    @Autowired
+    private AuthProps authProps;
+
     @Test
     public void t1() {
         System.out.println("-----");
     }
 
+    public static void main(String[] args) {
+        String encode = AuthUtil.encode("langchat-salt", "123456");
+        System.out.println(encode);
+    }
 }

+ 1 - 1
langchat-ui/.env.production

@@ -1,5 +1,5 @@
 # 是否开启mock
-VITE_USE_MOCK = true
+VITE_USE_MOCK = false
 
 # 网站根目录
 VITE_PUBLIC_PATH = /

+ 1 - 1
langchat-ui/src/layout/components/Header/index.vue

@@ -101,7 +101,7 @@
       <div class="layout-header-trigger layout-header-trigger-min">
         <n-dropdown :options="avatarOptions" trigger="hover" @select="avatarSelect">
           <div class="avatar">
-            <n-avatar :src="avatar" round>
+            <n-avatar :src="avatar" fallback-src="/favicon.ico" round>
               <template #icon>
                 <UserOutlined />
               </template>

+ 0 - 1
langchat-ui/src/views/login/index.vue

@@ -15,7 +15,6 @@
   const form = reactive({
     username: 'demo',
     password: '123456',
-    isCaptcha: true,
   });
 
   const rules = {