Я использую стандартный способ обработки входа, простую страницу входа, отделенную от приложения.
/admin/
на этом маршруте у меня есть простая промежуточная программа, проверяющая сеанс пользователя, если пользователь не аутентифицирован,он перенаправляется через /admin/login
.
Как только пользователь получает действительный сеанс, он может свободно перейти на /admin/
, где находится мое приложение.То же самое применимо, когда вам нужно аутентифицировать пользователей с помощью какого-либо OpenID или поставщика OAuth.
Нет смысла обрабатывать аутентификацию в браузере, так как это слишком просто для обработки в вашем бэкэнде.На самом деле в моем бэкэнде у меня есть только три стандартных маршрута:
/* accessible routes */
/admin/login
/* protected routes: */
/admin/
/admin/(...)
/admin/logout
Для решения проблемы с кнопкой «назад» вам просто нужно знать, есть ли у пользователя действительный токен сеанса, а затем перенаправить / вызвать на нужный маршрут(остерегайтесь петель перенаправления)