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, и вам, возможно, придется выяснить, как настроить его так, чтобы он запускался с правильного хоста.

Вернуться на верх