Хороший вопрос, поскольку решения OAuth включают несколько конечных точек, а надежность часто недооценивается. Это сложная задача - предоставить устойчивое решение, которое поддерживает быстрое разрешение проблем.
Сервер авторизации возвращает ответ об ошибке на перенаправление входа в полях error / error_description - в этом случае правильным поведением является то, что веб-интерфейс четко сообщает об ошибке и прекращает обработку
Обработка ответа на вход в систему через веб-интерфейс завершается ошибкой, например, при проверке подписи JWKS токена идентификатора - снова веб-интерфейс должен прекратить обработку и четко сообщить об ошибке
API возвращает постоянное сообщение 401 в веб-интерфейс, когда был предоставлен действительный токен - в этом случае API может быть настроен неправильно - сведения об ошибке 401 необходимо регистрировать - был ли токен не найден / истек срок действия / подпись ошибка проверки?
API возвращает неверный код состояния - например, доступ к reso urce denied должен быть возвращен в веб-интерфейс как 403, а техническая проблема должна быть возвращена как 500
Ошибка дешифрования cook ie - часто встречается в кластерных средах - звучит это не имеет отношения к вашему случаю, поскольку вы используете неявный поток, а ваш Angular клиент не использует cookie
ДЕЙСТВИЯ НАДЕЖНОСТИ ВО ВРЕМЯ РАЗРАБОТКИ
Я всегда рекомендую своим командам работать вот так, как только основы будут завершены (хотя успех у меня ограничен - смеется):
- Протестируйте хотя бы пару сценариев сбоев ios
- Просмотрите пути кода на предмет важного поведения - например, коды состояния API
- Обеспечьте правильное отображение ошибок в пользовательских интерфейсах, чтобы ускорить решение проблем
- Доставить solid ответы об ошибках API на веб-интерфейс, и записывать причины сбоев
РЕШЕНИЕ ДЛЯ СРАВНЕНИЯ ПРОТИВ
Эта моя запись может дать вам некоторые идеи относительно подхода. Шаги 10 и 17 касаются моделирования сбоев веб-интерфейса и API во время разработки и обеспечения желаемого поведения. Пример кода ниже: