Как сохранить токен в sessionStorage при входе?

Есть две функции, отвечающие за авторизацию пользователя:

const onSignIn = async (passPhrase) => {
  await setAccountData(passPhrase);
  if (status.value === coreSvc.eStatus.Connected) {
    router.push('/wallet');
  }
};

const setAccountData = async (passPhrase) => {
  store.dispatch('account/logOut');
  store.dispatch('account/setAccountInfo', null);
  if (passPhrase !== '' && passPhrase !== null) {
    const result = coreSvc.getAccountByPassPhrase(passPhrase);
    await openStore({ database: process.env.Db, table: TablesName.ACCOUNTS });
    const exists = await getItem(result.address);
    console.log(result.address);
    if (exists === null) {
      await setItem(result.address, JSON.stringify(result));
    }
    await store.dispatch('account/setAccountInfo', result);
  }
  await coreSvc.checkNetworkStatus(store);
};

В функции setAccountData() есть result.address из которого нужно сделать токен хранящийся в sessionStorage

Как это реализовать?


Ответы (1 шт):

Автор решения: SwaD

sessionStorage существует только в рамках текущей вкладки браузера.
При обновлении страницы/вкладки, данные в sessionStorage продолжат существовать.
Если вкладку закрыть и открыть заново, данные удаляться.

Добавьте в вашу функцию setAccountData сохранение значения в хранилище

sessionStorage.setItem('token', result.address);

result.address - должна быть строка.

В нужном месте кода, где вам необходимо получить данные, пишите

const token = sessionStorage.getItem('token');
→ Ссылка