/ / Пренасочване към друг домейн след Python-social-auth login - python, django, redirect, python-social-auth

Пренасочване към друг домейн след влизане в Python-social-auth - python, django, redirect, python-social-auth

Възможно ли е пренасочване към друга мрежа след влизане в системата python-social-auth?

да речем:

<a href="{% url "social:begin" "facebook" %}?next={{ request.path }}"></a>

Примерът по-горе е в съответствие с документацията и работи добре, но когато опитам това:

<a href="{% url "social:begin" "facebook" %}?next=http://www.google.com/"></a>

Получавам следната грешка:

http://example.com:8000/accounts/profile/ Not Found

Това има смисъл; Нямам определен URL адрес

В този момент вече съм влязъл в системата, но виждам страница за грешка.

Но със същата конфигурация, ако пренасоча към моя сайт, това работи, мисля, че това е нещо за настройките, но не знам коя.

РЕДАКТИРАНЕ:

Ако премахна next GET Param в първата конфигурация, той повдига същата грешка.

Отговори:

1 за отговор № 1

Не е безопасно да пренасочите към друг домейн, напр. https://www.google.com, За да разберете защо, си представете, че изпращам на потребителите ви връзка към:

http://www.yoursite.com/login?next=http://myevilsite.com

Ако страницата ви за вход е доверена на next url, след което потребителите ще бъдат пренасочени към сайта ми, след като са влезли в системата. Мога да го използвам за фишинг атаки.

За да предотврати това, Django проверява дали следващият url е безопасен за пренасочване. Ако не е безопасно, то ще пренасочи към settings.LOGIN_REDIRECT_URL, която по подразбиране е /accounts/profile/, Можеш виж кода тук.