Выйти из системы со всех активных вкладок в reactjs - PullRequest
0 голосов
/ 28 апреля 2020

Я использую библиотеку store. js для хранения объекта пользователя во всех моих компонентах. Если пользователь выходит из одной вкладки, я хочу, чтобы остальные вкладки перенаправили на страницу выхода из системы или отобразили диалоговое окно с надписью «Пожалуйста, войдите в систему».

Вот как я сохраняю объект пользователя в моя страница входа в систему:

 const userObject = {
      username: form.username,
      password: form.password,
    };

axios
        .post("https://localhost:9999/api/signin", userObject)
        .then((res) => {
          if (res.status === 200) {
            store.set("userData", res.data);
            console.log("logged in!!");
            window.location = "/dashboard/home";
          }
        })
        .catch((err) => {
          console.error(err);
          setForm({
            ...form,
            helperTextMain: "Incorrect password or username",
            errorUser: true,
            errorPassword: true,
          });
        });

И вот как я выхожу из системы:

 const handleLogout = (event) => {
        event.preventDefault()

        axios
            .post(`https://localhost:9999/api/logout`, {},
                {
                    headers: headers
                }
            )
            .then(res => {
                console.log(res.data)
                store.remove("userData")
                store.clearAll()
                setUserData({})
                window.location = "/" //going to login page
            })
            .catch(err => {
                console.error(err)
            })
    }

Я читал о windows .addeventelistener, но у меня есть понятия не имею, как его использовать. Может кто-нибудь помочь мне с этим? Спасибо!

...