Как сделать перенаправление на исходную страницу после авторизации React

У меня есть на сайте admin панель, в ней есть авторизация.

Мне нужно сделать так, чтобы когда я захожу вручную (через строку поиска браузера, вводя прямой адрес) на страницу, к примеру, редактирования пользователя - меня сначала переводило на страницу авторизации, когда я не авторизован, а потом, когда авторизация успешна мне нужно, чтобы меня перенесло редиректом на страницу, которую я вводил с самого начала до редиректа на страницу авторизации, т.е. на страницу редактирования пользователя.

Всё это нужно сделать на последних версиях экосистемы React и react-router.


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

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

Можно воспользоваться Redirect из библиотеки react-router:

import { Redirect } from "react-router"

const YourComponent = () => {

  const [state, setState] = setState({ redirect: false })

  // достаточно поменять значение state
  // что бы произошел redirect

  if (state.redirect) {
    return <Redirect push to="/signup" />
  }

  return <div>Ваш компонент<div/>
}
→ Ссылка
Автор решения: Sergei Kirjanov

В дополнение к ответу от @Vasily:

Redirect с push добавляет адрес в history, значит, по идее, можно использовать history.goBack(), чтобы вернуться обратно, по событию удачного логина.

import { useHistory } from 'react-router-dom'
...
    const history = useHistory()
...
        history.goBack()
→ Ссылка