feature:更新登录插件库

This commit is contained in:
fangyunong 2025-07-07 11:09:44 +08:00
parent d8ec93536b
commit 2427b5e213
7 changed files with 141 additions and 69 deletions

4
.env
View File

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

View File

@ -9,7 +9,7 @@
"preview": "vite preview" "preview": "vite preview"
}, },
"dependencies": { "dependencies": {
"@auth0/auth0-vue": "^2.4.0", "@logto/vue": "^3.0.9",
"axios": "^1.7.2", "axios": "^1.7.2",
"echarts": "^5.6.0", "echarts": "^5.6.0",
"ftp-deploy": "^2.4.7", "ftp-deploy": "^2.4.7",

117
pnpm-lock.yaml generated
View File

@ -8,9 +8,9 @@ importers:
.: .:
dependencies: dependencies:
'@auth0/auth0-vue': '@logto/vue':
specifier: ^2.4.0 specifier: ^3.0.9
version: 2.4.0(typescript@5.8.3)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3))) version: 3.0.9(vue@3.5.17(typescript@5.8.3))
axios: axios:
specifier: ^1.7.2 specifier: ^1.7.2
version: 1.10.0 version: 1.10.0
@ -88,17 +88,6 @@ packages:
'@antfu/utils@0.7.10': '@antfu/utils@0.7.10':
resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==} resolution: {integrity: sha512-+562v9k4aI80m1+VuMHehNJWLOFjBnXn3tdOitzD0il5b7smkSBal4+a3oKiQTbrwMmN/TBUMDvbdoWDehgOww==}
'@auth0/auth0-spa-js@2.2.0':
resolution: {integrity: sha512-YaHHCxiSQxDb+Ju9gXOqcqgXWq8EkUSpZC4g24D3MoEBUaADKwOosrAnmjDZcslBZpnSFFdrl4dLYedAer3xlQ==}
'@auth0/auth0-vue@2.4.0':
resolution: {integrity: sha512-12iLvojP8Pvxqu2Abxzksp0HqlSovGiAUhWrppnOaJP02MZEBQo+c/IwM6VbM0edNk+eqqjX5u96iw5peaCPSg==}
peerDependencies:
vue-router: ^4.0.12
peerDependenciesMeta:
vue-router:
optional: true
'@babel/code-frame@7.27.1': '@babel/code-frame@7.27.1':
resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==}
engines: {node: '>=6.9.0'} engines: {node: '>=6.9.0'}
@ -348,6 +337,20 @@ packages:
'@juggle/resize-observer@3.4.0': '@juggle/resize-observer@3.4.0':
resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
'@logto/browser@3.0.9':
resolution: {integrity: sha512-hPCmDj+Anb0ZdCaCZUFt7R5aLmuZcu7fN9LN0zFE32tE8hynmGatNS8eMFJN85fM13eTKunSicT9+5KMS8DGjQ==}
'@logto/client@3.1.4':
resolution: {integrity: sha512-aaz1XrLLTBii5lz3c7oHr/kqcR2iTbTehxlCn3YMnSyGUBVjoUYH4eU37wqf08nEYjtsLaSndYu63WVN8/Fpqw==}
'@logto/js@6.1.0':
resolution: {integrity: sha512-FGFDtqZqVP0mUR7ze7Uz488TsMSWQkMiU00PefJg/MMQJeI93WejPcpPkGd4JvoKAVj99wfsY/0AR1gMADCLyQ==}
'@logto/vue@3.0.9':
resolution: {integrity: sha512-wG4/r2xcLsvVYZm5Ajj4PtOv9xz4GnlSkrdLLV4dsnVbVNHitJaoNH7YWrKu96HMDIozkHsPxlOhdmg2DIkVog==}
peerDependencies:
vue: ^3.0.0
'@nodelib/fs.scandir@2.1.5': '@nodelib/fs.scandir@2.1.5':
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
engines: {node: '>= 8'} engines: {node: '>= 8'}
@ -469,6 +472,10 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
'@silverhand/essentials@2.9.2':
resolution: {integrity: sha512-bD+82D9Dfa1F5xX1kfdR5ODIoJS41NOxTuHx4shVS5A4/ayEG+ZplpDDjB19fsa7kZXgSgD75R4sUCXjm88x6w==}
engines: {node: ^18.12.0 || ^20.9.0 || ^22.0.0, pnpm: ^9.0.0}
'@trysound/sax@0.2.0': '@trysound/sax@0.2.0':
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'} engines: {node: '>=10.13.0'}
@ -722,6 +729,14 @@ packages:
resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
camelcase-keys@9.1.3:
resolution: {integrity: sha512-Rircqi9ch8AnZscQcsA1C47NFdaO3wukpmIRzYcDOrmvgt78hM/sj5pZhZNec2NM12uk5vTwRHZ4anGcrC4ZTg==}
engines: {node: '>=16'}
camelcase@8.0.0:
resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==}
engines: {node: '>=16'}
caniuse-lite@1.0.30001726: caniuse-lite@1.0.30001726:
resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==} resolution: {integrity: sha512-VQAUIUzBiZ/UnlM28fSp2CRF3ivUn1BWEvxMcVTNwpw91Py1pGbPIyIKtd+tzct9C3ouceCVdGAXxZOpZAsgdw==}
@ -1336,9 +1351,15 @@ packages:
resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
jose@5.10.0:
resolution: {integrity: sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==}
js-base64@2.6.4: js-base64@2.6.4:
resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==} resolution: {integrity: sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==}
js-base64@3.7.7:
resolution: {integrity: sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw==}
js-cookie@3.0.5: js-cookie@3.0.5:
resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==} resolution: {integrity: sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==}
engines: {node: '>=14'} engines: {node: '>=14'}
@ -1410,6 +1431,10 @@ packages:
resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
map-obj@5.0.0:
resolution: {integrity: sha512-2L3MIgJynYrZ3TYMriLDLWocz15okFakV6J12HXvMXDHui2x/zgChzg1u9mFFGbbGWE+GsLpQByt4POb9Or+uA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
map-visit@1.0.0: map-visit@1.0.0:
resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==} resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
engines: {node: '>=0.10.0'} engines: {node: '>=0.10.0'}
@ -1649,6 +1674,10 @@ packages:
queue-microtask@1.2.3: queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
quick-lru@6.1.2:
resolution: {integrity: sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==}
engines: {node: '>=12'}
read@2.1.0: read@2.1.0:
resolution: {integrity: sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==} resolution: {integrity: sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ==}
engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
@ -1927,6 +1956,10 @@ packages:
tweetnacl@0.14.5: tweetnacl@0.14.5:
resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==} resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
type-fest@4.41.0:
resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==}
engines: {node: '>=16'}
typed-array-buffer@1.0.3: typed-array-buffer@1.0.3:
resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==}
engines: {node: '>= 0.4'} engines: {node: '>= 0.4'}
@ -2142,17 +2175,6 @@ snapshots:
'@antfu/utils@0.7.10': {} '@antfu/utils@0.7.10': {}
'@auth0/auth0-spa-js@2.2.0': {}
'@auth0/auth0-vue@2.4.0(typescript@5.8.3)(vue-router@4.5.1(vue@3.5.17(typescript@5.8.3)))':
dependencies:
'@auth0/auth0-spa-js': 2.2.0
vue: 3.5.17(typescript@5.8.3)
optionalDependencies:
vue-router: 4.5.1(vue@3.5.17(typescript@5.8.3))
transitivePeerDependencies:
- typescript
'@babel/code-frame@7.27.1': '@babel/code-frame@7.27.1':
dependencies: dependencies:
'@babel/helper-validator-identifier': 7.27.1 '@babel/helper-validator-identifier': 7.27.1
@ -2361,6 +2383,30 @@ snapshots:
'@juggle/resize-observer@3.4.0': {} '@juggle/resize-observer@3.4.0': {}
'@logto/browser@3.0.9':
dependencies:
'@logto/client': 3.1.4
'@silverhand/essentials': 2.9.2
js-base64: 3.7.7
'@logto/client@3.1.4':
dependencies:
'@logto/js': 6.1.0
'@silverhand/essentials': 2.9.2
camelcase-keys: 9.1.3
jose: 5.10.0
'@logto/js@6.1.0':
dependencies:
'@silverhand/essentials': 2.9.2
camelcase-keys: 9.1.3
'@logto/vue@3.0.9(vue@3.5.17(typescript@5.8.3))':
dependencies:
'@logto/browser': 3.0.9
'@silverhand/essentials': 2.9.2
vue: 3.5.17(typescript@5.8.3)
'@nodelib/fs.scandir@2.1.5': '@nodelib/fs.scandir@2.1.5':
dependencies: dependencies:
'@nodelib/fs.stat': 2.0.5 '@nodelib/fs.stat': 2.0.5
@ -2441,6 +2487,8 @@ snapshots:
'@rollup/rollup-win32-x64-msvc@4.44.1': '@rollup/rollup-win32-x64-msvc@4.44.1':
optional: true optional: true
'@silverhand/essentials@2.9.2': {}
'@trysound/sax@0.2.0': {} '@trysound/sax@0.2.0': {}
'@types/estree@1.0.8': {} '@types/estree@1.0.8': {}
@ -2762,6 +2810,15 @@ snapshots:
call-bind-apply-helpers: 1.0.2 call-bind-apply-helpers: 1.0.2
get-intrinsic: 1.3.0 get-intrinsic: 1.3.0
camelcase-keys@9.1.3:
dependencies:
camelcase: 8.0.0
map-obj: 5.0.0
quick-lru: 6.1.2
type-fest: 4.41.0
camelcase@8.0.0: {}
caniuse-lite@1.0.30001726: {} caniuse-lite@1.0.30001726: {}
chalk@1.1.3: chalk@1.1.3:
@ -3483,8 +3540,12 @@ snapshots:
isobject@3.0.1: {} isobject@3.0.1: {}
jose@5.10.0: {}
js-base64@2.6.4: {} js-base64@2.6.4: {}
js-base64@3.7.7: {}
js-cookie@3.0.5: {} js-cookie@3.0.5: {}
js-tokens@4.0.0: {} js-tokens@4.0.0: {}
@ -3548,6 +3609,8 @@ snapshots:
map-cache@0.2.2: {} map-cache@0.2.2: {}
map-obj@5.0.0: {}
map-visit@1.0.0: map-visit@1.0.0:
dependencies: dependencies:
object-visit: 1.0.1 object-visit: 1.0.1
@ -3820,6 +3883,8 @@ snapshots:
queue-microtask@1.2.3: {} queue-microtask@1.2.3: {}
quick-lru@6.1.2: {}
read@2.1.0: read@2.1.0:
dependencies: dependencies:
mute-stream: 1.0.0 mute-stream: 1.0.0
@ -4184,6 +4249,8 @@ snapshots:
tweetnacl@0.14.5: {} tweetnacl@0.14.5: {}
type-fest@4.41.0: {}
typed-array-buffer@1.0.3: typed-array-buffer@1.0.3:
dependencies: dependencies:
call-bound: 1.0.4 call-bound: 1.0.4

View File

@ -1,4 +1,4 @@
import { DO_MAIN, CLIENT_ID }from '@/utils/secret'; 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 +12,7 @@ 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 { createAuth0 } from '@auth0/auth0-vue'; import { createLogto, LogtoConfig } from '@logto/vue';
import { createApp } from 'vue' import { createApp } from 'vue'
import App from './App.vue'; import App from './App.vue';
// 全局组件 // 全局组件
@ -23,17 +23,17 @@ const app = createApp(App);
app.component('svg-icon',SvgIcon); //图标组件 app.component('svg-icon',SvgIcon); //图标组件
app.use(LsComponent); //零枢封装组件 app.use(LsComponent); //零枢封装组件
app.use(
createAuth0({ // 鉴权
domain: DO_MAIN, const config: LogtoConfig = {
clientId: CLIENT_ID, endpoint: END_POINT,
authorizationParams: { appId: APP_ID,
redirect_uri: `${window.location.origin}/callback`, };
audience: "https://AGSSadmin.ASGG.com", app.use(createLogto, {
scope: 'read:data', // 请求用户基本信息 ...config,
} scopes: ['shopping:read', 'shopping:write', 'store:read', 'store:write'],
}) resources: [import.meta.env.VITE_API_BASE_URL],
); });
app.use(pinia); app.use(pinia);
app.use(router); app.use(router);

View File

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

View File

@ -4,34 +4,36 @@
</div> </div>
</template> </template>
<script setup> <script setup lang="ts">
import { setToken } from '@/utils/auth'; import { setToken } from '@/utils/auth';
import { useAuth0 } from '@auth0/auth0-vue'; 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 { getAccessTokenSilently } = useAuth0(); const { isAuthenticated, getAccessToken } = useLogto();
const router = useRouter(); const router = useRouter();
const message = useMessage(); const message = useMessage();
const oSomethingWithToken = async () => { watch(() => isAuthenticated.value, (newVal) => {
try { if (newVal) {
const token = await getAccessTokenSilently(); (async () => {
setToken(token); try {
const isCompleteInfo = await isNewUser(); // true const accessToken = await getAccessToken(import.meta.env.VITE_API_BASE_URL);
if(!isCompleteInfo) return router.push('/register'); console.log(accessToken);
const result = await getUserInfo(); setToken(accessToken);
console.log(result,'result'); //userInfostore const isCompleteInfo = await isNewUser(); // true
//TODO if (!isCompleteInfo) return router.push('/register');
message.success('登录成功!'); const result = await getUserInfo();
router.push('/layout'); console.log(result, 'result'); //userInfostore
} catch (error) { //TODO
router.push('/'); message.success('登录成功!');
message.error(error.message); router.push('/layout');
} catch (error) {
router.push('/');
message.error(error.message);
}
})();
} }
},{
} immediate:true
onMounted(() => {
oSomethingWithToken();
}) })
</script> </script>

View File

@ -204,7 +204,7 @@
<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 { useAuth0 } from '@auth0/auth0-vue'; 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();
@ -217,9 +217,9 @@ const handleDemo = async () => {
console.log('代码演示一下!!!'); console.log('代码演示一下!!!');
} }
const { loginWithRedirect } = useAuth0(); const { signIn } = useLogto();
const handleLogin = () => { const handleLogin = () => {
loginWithRedirect(); signIn(`${import.meta.env.VITE_FRONT_DEVELOP}/callback`);
} }
// //