Ссылка для регистрации в Google выдает ошибку с моей страницы, но не со страницы allauth

#javascript #ajax #django #django-allauth

#javascript #ajax #django #django-allauth

Вопрос:

Я использую модуль allauth для аутентификации пользователей в Google.

В /accounts/login/ шаблоне, предоставленном allauth, есть ссылка « google «, в которой есть href="/accounts/google/login/?process=login" . Вы можете нажать на эту ссылку, чтобы пройти аутентификацию в Google.

Я создаю свой собственный шаблон с точно такой же ссылкой

<a id="google-login" href="/accounts/google/login/?process=login">Google</a>

Когда я нажимаю на свою собственную ссылку в своем шаблоне, я получаю эту ошибку:

 `XMLHttpRequest cannot load https://accounts.google.com/o/oauth2/auth?state=************amp;response_type=…id=*************************. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1' is therefore not allowed access.`
  

Я не понимаю, почему точно такая же ссылка работает из tempalte allauth — / accouts/login/ — но не из моего шаблона. Это точно такая же ссылка с точно таким же href.

Хорошо, я заметил кое-что важное: когда я нажимаю на ссылку href из консоли программистов, она правильно перенаправляет меня по нужному адресу. Проблем нет. Он открывает новую вкладку и правильно соединяет меня с Google.

Я решил оставить разницу между информацией о сети, когда я нажимаю ссылку на страницу allauth html, и ссылкой на моей html-странице: (первая строка — это я, а вторая — allauth)

 Accept:text/html, */*; q=0.01
Accept:text/html,application/xhtml xml,application/xml;q=0.9,image/webp,*/*;q=0.8


Referer:http://localhost:8000/static/index.html
Referer:http://localhost:8000/accounts/login/

X-Requested-With:XMLHttpRequest
this line doesnt exist in the request from allauth's html page
  

Если у кого-то есть какие-либо предложения, пожалуйста, дайте мне знать.

Заранее спасибо.

женя

Комментарии:

1. я думаю, что это связано с аутентификацией csrf

Ответ №1:

Я знаю, что это неправильный ответ. Но вы когда-нибудь пробовали использовать python-social-auth, ранее известный как django-social-auth?