反应本地存储浏览器注销

时间:2020-10-27 04:59:18

标签: javascript reactjs local-storage react-apollo

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>
  );
};

我使用本地存储实现了登录。但是,存在关闭浏览器时保持登录状态的问题。无法使用会话存储,因为关闭选项卡后,新选项卡中的登录不会保持。我想关闭所有本地浏览器的选项卡,并在所有浏览器关闭时从本地存储中删除数据。关闭浏览器时会发生什么事件?而我该如何解决这个问题呢?

0 个答案:

没有答案