Я все еще новичок в Angular.Я хочу обновить токен доступа, но не знаю, где это сделать.
Я знаю о guards and
interceptors
.Где лучшее место для этого?Есть ли компромиссы, которые я должен принять во внимание?
Многие вопросы здесь показывают, как это сделать в любом случае, но не обсуждают «почему».Я думаю, что обновление должно происходить в защите в самом начале цикла запроса, поэтому маршрутизатор знает, нужно ли «активировать».Но большинство примеров показывают это в перехватчике (либо просматривая время истечения, либо ожидая 401 и затем обновляя).
Любой совет будет оценен.
ОБНОВЛЕНИЕ
Я знаю «как», что мне нужно понять, так это почему.Где правильное место для обновления?
Задача охранника состоит в том, чтобы просто проверить, вошел ли пользователь в систему, и, если нет, перенаправить на страницу входа.
Если токен обновления имеетИстек срок действия, тогда я считаю, что охранник должен вернуть false для canActivate(ActivatedRouteSnapshot, RouterStateSnapshot)
, поскольку пользователь, хотя и прошел проверку подлинности, больше не имеет текущего разрешения.
Именно поэтому я склоняюсь к тому, чтобы поместить его в охрану.Но большинство примеров, включая превосходный ниже, показывают обновление в перехватчике.Конечно, тогда уже очень поздно в цикле запросов?Чего мне здесь не хватает - это только вопрос стиля или в цикле угловых запросов есть что-то большее, что я должен учитывать?