update
This commit is contained in:
@@ -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 = () => {
|
||||
|
||||
Reference in New Issue
Block a user