feat:登录三改

This commit is contained in:
fangyunong 2025-07-08 20:56:11 +08:00
parent 46802f3d27
commit 38b3dbe5ce
8 changed files with 18 additions and 28 deletions

3
.env
View File

@ -1,3 +0,0 @@
VITE_API_BASE_URL=http://47.94.224.191:8080
VITE_FRONT_DEVELOP=http://localhost:5173

2
.env.development Normal file
View File

@ -0,0 +1,2 @@
VITE_API_BASE_URL=http://47.94.224.191:8080
VITE_FRONTEND_CALLBACK_URL=http://localhost:5173/callback

3
.env.production Normal file
View File

@ -0,0 +1,3 @@
# .env.production (生产环境)
VITE_API_BASE_URL=http://47.94.224.191:8080
VITE_FRONTEND_CALLBACK_URL=http://47.94.224.191:8080/callback # 或者你的生产环境前端URL

View File

@ -1,4 +1,3 @@
import { APP_ID, END_POINT }from '@/utils/secret';
// 样式引入 // 样式引入
import "@/assets/styles/reset.scss"; import "@/assets/styles/reset.scss";
import "@/assets/styles/common.scss"; import "@/assets/styles/common.scss";
@ -12,7 +11,6 @@ import 'vfonts/Lato.css'// 通用字体
import 'vfonts/FiraCode.css'// 等宽字体 import 'vfonts/FiraCode.css'// 等宽字体
import 'virtual:svg-icons-register'; //SVG精灵图册 import 'virtual:svg-icons-register'; //SVG精灵图册
// 登录授权相关 // 登录授权相关
import { createLogto, LogtoConfig } from '@logto/vue';
import { createApp } from 'vue' import { createApp } from 'vue'
import App from './App.vue'; import App from './App.vue';
// 全局组件 // 全局组件
@ -24,12 +22,6 @@ const app = createApp(App);
app.component('svg-icon',SvgIcon); //图标组件 app.component('svg-icon',SvgIcon); //图标组件
app.use(LsComponent); //零枢封装组件 app.use(LsComponent); //零枢封装组件
// 鉴权
const config: LogtoConfig = {
endpoint: END_POINT,
appId: APP_ID,
};
app.use(createLogto, config);
app.use(pinia); app.use(pinia);
app.use(router); app.use(router);

View File

@ -13,7 +13,7 @@ import Dict from '@/views/system/dict/index.vue'; //用户字典
import GlobalSys from '@/views/system/globalSys/index.vue'; //全局参数 import GlobalSys from '@/views/system/globalSys/index.vue'; //全局参数
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
const whiteList = ["/callback",'/layout/dict','/layout/globalSys']; const whiteList = ["/callback"];
const routes: Array<RouteRecordRaw> = [ const routes: Array<RouteRecordRaw> = [
{ {

View File

@ -19,7 +19,7 @@
<script setup lang='ts'> <script setup lang='ts'>
import { removeToken } from '@/utils/auth'; import { removeToken } from '@/utils/auth';
import { useLogto } from '@logto/vue';
import { import {
Pencil as EditIcon, Pencil as EditIcon,
@ -28,7 +28,7 @@ import {
CaretDownOutline CaretDownOutline
} from '@vicons/ionicons5'; } from '@vicons/ionicons5';
import { NIcon } from 'naive-ui'; import { NIcon } from 'naive-ui';
const { signOut } = useLogto();
const router = useRouter(); const router = useRouter();
function renderIcon(icon: Component) { function renderIcon(icon: Component) {
return () => { return () => {
@ -57,8 +57,7 @@ const options = [
const handleSelect = (key: string | number) => { const handleSelect = (key: string | number) => {
if (key === 'logout') { if (key === 'logout') {
removeToken() removeToken();
signOut(import.meta.env.VITE_FRONT_DEVELOP);
router.push('/'); router.push('/');
} }
} }

View File

@ -6,21 +6,18 @@
<script setup lang="ts"> <script setup lang="ts">
import { removeToken, setToken } from '@/utils/auth'; import { removeToken, setToken } from '@/utils/auth';
import { useLogto } from '@logto/vue';
import { useMessage } from 'naive-ui'; import { useMessage } from 'naive-ui';
import { isNewUser, getUserInfo } from '@/api/userApi'; import { isNewUser, getUserInfo } from '@/api/userApi';
const { getAccessToken } = useLogto();
const router = useRouter(); const router = useRouter();
const message = useMessage(); const message = useMessage();
const init = async () => { const init = async () => {
try { try {
const accessToken = await getAccessToken('https://wf2eyr.logto.app/api'); const route = useRoute();
console.log(accessToken); const token = route.query.token as string; // token
setToken(accessToken); console.log('Token:', token);
const isCompleteInfo = await isNewUser(); // true setToken(token)
if (!isCompleteInfo) return router.push('/register'); // const result = await getUserInfo();
const result = await getUserInfo(); // console.log(result, 'result'); //userInfostore
console.log(result, 'result'); //userInfostore
//TODO //TODO
message.success('登录成功!'); message.success('登录成功!');
router.push('/layout'); router.push('/layout');

View File

@ -204,10 +204,10 @@
<script setup lang="ts"> <script setup lang="ts">
import { ChevronForward, GitCompare, BarChartSharp, Server } from '@vicons/ionicons5'; import { ChevronForward, GitCompare, BarChartSharp, Server } from '@vicons/ionicons5';
import { useLogto } from '@logto/vue';
import { useDialog, useMessage } from 'naive-ui'; import { useDialog, useMessage } from 'naive-ui';
const dialog = useDialog(); const dialog = useDialog();
const message = useMessage(); const message = useMessage();
const router = useRouter();
const handleDemo = async () => { const handleDemo = async () => {
// try { // try {
// const data = await loginApiTest(); //data : { data:data,code:200,msg:'ok' } data // const data = await loginApiTest(); //data : { data:data,code:200,msg:'ok' } data
@ -215,11 +215,11 @@ const handleDemo = async () => {
// message.error(error.message); //error.message : { data:null,code:400,msg:'' }msg // message.error(error.message); //error.message : { data:null,code:400,msg:'' }msg
// } // }
console.log('代码演示一下!!!'); console.log('代码演示一下!!!');
message.warning('演示一下!');
} }
const { signIn } = useLogto();
const handleLogin = () => { const handleLogin = () => {
signIn(`${import.meta.env.VITE_FRONT_DEVELOP}/callback`); window.location.href = `${import.meta.env.VITE_API_BASE_URL}/Identity/Account/Login?frontendCallback=${import.meta.env.VITE_FRONTEND_CALLBACK_URL}`;
} }
// //