Commit b7f9e938 authored by 文旺-丰林-DEV's avatar 文旺-丰林-DEV

fix login expires

parent 977dae7f
import { message } from 'antd';
import moment from 'moment';
/**
* @see https://umijs.org/zh-CN/plugins/plugin-access
* */
export default function access(initialState: {
userInfo: { token: ''; roles: []; name: ''; userName: '' };
expires: 0;
}) {
console.log('initialState', initialState);
checkIsTokenExpires();
return initialState.userInfo ?? {};
}
export function checkIsTokenExpires() {
const expires = parseInt(localStorage.getItem('expires') || '0');
const now = moment().unix();
const user = localStorage.getItem('user');
if (expires - now <= 0) {
localStorage.removeItem('user');
if (user) {
message.error('会话已过期,请重新登录');
window.location.href = '/chat';
return true;
}
}
return false;
}
......@@ -16,7 +16,6 @@ export const initialStateConfig = {
export async function getInitialState() {
const userInfo = JSON.parse(localStorage.getItem('user') || '{}');
if (isEmpty(userInfo)) {
history.push(loginPath);
return {};
......
......@@ -5,6 +5,7 @@ import logoSvg from '../../assets/logo.svg';
import { useEffect, useRef, useState } from 'react';
import { loginChatGLM } from '@/services/chatGLM/api';
import { useModel } from 'umi';
import moment from 'moment';
interface ILoginModalProps {
open: boolean;
setOpen: (value: boolean) => void;
......@@ -46,6 +47,7 @@ const LoginModal = (props: ILoginModalProps) => {
if (checked) {
localStorage.setItem('account', JSON.stringify({ username, password, checked }));
}
localStorage.setItem('expires', moment().add(11, 'hour').unix().toString());
setInitialState({ ...initialState, userInfo: result });
localStorage.setItem('user', JSON.stringify(result));
setLoading(false);
......
......@@ -18,6 +18,7 @@ import { useWebSocket, useRequest } from 'ahooks';
import { GetChatGLMToken, GetPromptList } from '@/services/chatGLM/api';
import { useAccess } from 'umi';
import { PageLoading } from '@ant-design/pro-layout';
import { checkIsTokenExpires } from '@/access';
const { useBreakpoint } = Grid;
const { Title } = Typography;
......@@ -76,20 +77,22 @@ const Chat: React.FC = () => {
return messageHistory.current;
}, [answer]);
async function handleSendMessage() {
messageHistory.current.push({ prompt: chat, answer: '' });
setLoading(true);
sendMessage &&
glmToken &&
sendMessage(
JSON.stringify({
prompt: chat,
max_length: 2048,
top_p: 0.7,
temperature: 0.95,
history: [messageHistory.current.map((h) => h.prompt)],
token: glmToken,
}),
);
if (!checkIsTokenExpires()) {
messageHistory.current.push({ prompt: chat, answer: '' });
setLoading(true);
sendMessage &&
glmToken &&
sendMessage(
JSON.stringify({
prompt: chat,
max_length: 2048,
top_p: 0.7,
temperature: 0.95,
history: [messageHistory.current.map((h) => h.prompt)],
token: glmToken,
}),
);
}
}
useEffect(() => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment