Реагировать на перенаправление Saga на страницу попытки после входа - PullRequest
0 голосов
/ 09 апреля 2020

Я читал сообщения о перенаправлении на указанную c страницу после успешного входа в систему, но мне интересно, как я могу перенаправить пользователя на страницу, на которую предпринимались попытки после входа в систему?

Я очень новичок, поэтому я не уверен, что я что-то здесь упустил, но в настоящее время вот что у меня есть, и я могу перенаправить пользователя на домашнюю страницу после входа в систему. Это означает, что если пользователь перейдет на одну из страниц (страница x) без входа в систему, он будет перенаправлен на страницу входа в систему, а при успешном входе в систему он будет перенаправлен на страницу x.

Это логин функция в моих сагах. js

function* loginUser(action) {
  try {
    // Store user data in browser's localStorage
    localStorage.setItem('authorization-token', action.data.tokenId);
    localStorage.setItem('token', JSON.stringify(action.data.tokenObj));
    localStorage.setItem('user', JSON.stringify(action.data.profileObj));
    localStorage.setItem(JWT_REFRESH_COUNT_KEY, 0);
    startJWTRefreshChecker();
    // Place user information into the session slice of state
    yield put(actions.receiveUser(action.data));
    // Redirect browser to a new page following login
    yield put(push('/'));
  } catch (error) {
    yield put(actions.receiveUserError(error));
  }
}
function* watchLoginUser() {
  yield takeLatest(actions.LOGIN_USER, loginUser);
}

У меня также есть функция аутентификации здесь

// Renders component if logged in, otherwise redirects to the login page
const Protected = ({ component: Component, path, loggedIn }) => {
  return (
    <Route
      path={path}
      render={(props) => (
        loggedIn ? (
          <Component {...props} />
      ) : (
        <Redirect to="/login" />
      )
    )}
    />
  );
};

Protected.propTypes = {
  component: PropTypes.any,
  path: PropTypes.any,
  loggedIn: PropTypes.any,
};

Любая помощь приветствуется, спасибо!

...