Django-rest-framework-social-oauth2: ошибка 400 - redirect_uri_mismatch
Я пытался добавить google login в мое приложение django, следуя этому руководству: https://github.com/RealmTeam/django-rest-framework-social-oauth2
Следуя в точности инструкциям, все прекрасно работает в локальном режиме.
Однако, когда я пытаюсь повторить то же самое на сервере, я получаю следующую ошибку на странице перенаправления логина:
Error 400: redirect_uri_mismatch
redirect_uri: http://localhost:8000/auth/complete/google-oauth2/
Что мне кажется странным, так это то, что в консоли разработчика google я установил правильный url перенаправления в моем приложении, как показано ниже:
https://mydjangoapp.com/auth/complete/google-oauth2/
И я также указал 'mydjangoapp.com' в разделе 'Authorised JavaScript origins'. Поэтому мой вопрос в том, почему google продолжает говорить мне, что url перенаправления является
http://localhost:8000/auth/complete/google-oauth2/
, который не является тем, который я установил в консоли? Возможно, есть что-то очевидное, что я упускаю. Спасибо!
Почему google продолжает говорить мне, что url перенаправления
Поскольку ваше приложение отправляет его в вашем коде, приложение работает на http://localhost:8000, и если вы используете клиентскую библиотеку, она, вероятно, добавляет остальное автоматически.
http://localhost:8000/auth/complete/google-oauth2/
Ури перенаправления должен точно соответствовать тому, что вы отправляете из своего приложения.
Вам необходимо добавить
http://localhost:8000/auth/complete/google-oauth2/
Javascript origin необходим, только если ваш код использует javascript.
В этом видеоролике вы узнаете, как исправить ошибку. Google OAuth2: Как исправить ошибку redirect_uri_mismatch. Часть 2 Серверные веб-приложения.
Если вы хотите, чтобы ваш код отправлял https://mydjangoapp.com, то вам придется запускать его с https://mydjangoapp.com, и вам, возможно, придется выяснить, как настроить его так, чтобы он запускался с правильного хоста.