This commit is contained in:
2025-12-09 10:34:24 +08:00
parent bc2298ff83
commit 78927afd7a
6 changed files with 44 additions and 12 deletions

View File

@@ -2,10 +2,39 @@ import { useEffect, useState } from "react";
import { useUserStore } from "./store.ts";
import { useShallow } from 'zustand/shallow';
import '@kevisual/kv-login';
import { clearCode } from '@kevisual/kv-login'
import { useContextKey } from "@kevisual/context";
import { toast as message } from 'react-toastify';
import { Dialog, DialogContent, DialogHeader, DialogTrigger } from "@/components/ui/dialog";
import { queryLogin as query } from '@/modules/query';
export const checkPluginLogin = async () => {
const userCheck = 'user-check';
const url = new URL(location.href);
const redirect = url.searchParams.get('redirect');
const redirectUrl = redirect ? decodeURIComponent(redirect) : '';
const checkKey = url.searchParams.get(userCheck);
if (redirect && checkKey) {
// 通过refresh_token 刷新token
const me = await query.getMe();
if (me.code === 200) {
message.success('登录插件中...');
const token = await query.cacheStore.getAccessToken();
const newRedirectUrl = new URL(redirectUrl);
newRedirectUrl.searchParams.set('token', token + '');
setTimeout(() => {
window.open(newRedirectUrl.toString(), '_blank');
clearCode();
}, 1000);
return;
} else {
clearCode();
const state = useUserStore.getState()
state.setOpen(true);
}
// 刷新token失败登陆页自己跳转
}
console.log('checkKey', checkKey, redirectUrl);
}
export const LoginComponent = ({ onLoginSuccess }: { onLoginSuccess: () => void }) => {
useEffect(() => {
// 监听登录成功事件
@@ -42,6 +71,7 @@ export const Nav = () => {
useEffect(() => {
store.queryUser();
store.init();
checkPluginLogin();
}, []);
const handleLoginSuccess = () => {