Почему вы можете увидеть 404 при входе в ваше приложение с интеграцией Logto
Вам когда-нибудь появлялась ошибка "404 Not Found", когда вы пытались войти в приложение с интеграцией Logto? Этот блог пост объясняет, почему это происходит и что вы можете сделать, чтобы этого избежать.
История
Вы когда-нибудь пытались войти в приложение, которое использует Logto для аутентификации, и получали ошибку "404 not found"? Сообщали ли ваши конечные пользователи о такой же проблеме?
Это может произойти, когда вы напрямую переходите на страницу входа в систему (например, https://your-app.com/sign-in
), не проходя через ожидаемый поток аутентификации вашего приложения.
Вот почему:
Важность потока OIDC
Logto полагается на протокол OpenID Connect (OIDC) для безопасной аутентификации. Когда вы входите через нормальный поток приложения (например, обычно нажимая кнопку входа из вашего приложения), приложение инициирует связь с OIDC-сервером Logto. Это взаимодействие, называемое "запросом авторизации", важно, потому что оно выполняет различные проверки вызывающего, а затем устанавливает безопасную сессию между вашим браузером и сервером (управляется с помощью cookies).
Проблема возникает, когда пользователи напрямую переходят на страницу "/sign-in", так как это обходит внутреннюю логику приложения, которая запускает запрос авторизации OIDC. В результате сервер не распознает ваш браузер как имеющий действительную сессию, что приводит к ошибке 404.
Решение
Есть два основных способа избежать этой проблемы: