const onSubmit = async data => {
try {
const token = await Axios.post(
`${process.env.REACT_APP_API_GW_URL}/api/v1/login`,
data,
{ withCredentials: true }
);
console.log(token)
if (token !== '' && token !== undefined) {
localStorage.setItem('userInfo',JSON.stringify({
loginID:token.data.user.id,
loginDT:new Date(),
token: token.data.accessToken
}) );
navigate('/', { replace: true });
}
const App = () => {
const loginInRouting = useRoutes(loginInRoutes);
const loginOutRouting = useRoutes(loginOutRoutes);
const loginToken = localStorage.getItem("userInfo")
? JSON.parse(localStorage.getItem("userInfo")).token
: null;
return (
<ApolloProvider client={Client}>
<ThemeProvider theme={theme}>
<GlobalStyles />
{loginToken === null ? loginOutRouting : null}
{loginToken !== null ? loginInRouting : null}
<ToastContainer position="top-center" />
</ThemeProvider>
</ApolloProvider>
);
};
我使用本地存储实现了登录。但是,存在关闭浏览器时保持登录状态的问题。无法使用会话存储,因为关闭选项卡后,新选项卡中的登录不会保持。我想关闭所有本地浏览器的选项卡,并在所有浏览器关闭时从本地存储中删除数据。关闭浏览器时会发生什么事件?而我该如何解决这个问题呢?