/ / Django-AllAuth плутанина ACCOUNT_CONFIRM_EMAIL_ON_GET - django, django-allauth

Django-AllAuth ACCOUNT_CONFIRM_EMAIL_ON_GET плутанина - джанго, джанго-авеллат

Мене трохи бентежить змінна конфігурація ACCOUNT_CONFIRM_EMAIL_ON_GET. (документи)

Якщо користувач натискає посилання на активацію в електронній пошті, запит не буде мати бути запитом на отримання? (Звичайно, я щось помиляюсь чи щось не вистачає).

З мого тестування, якщо я поїду ACCOUNT_CONFIRM_EMAIL_ON_GET встановлено значення False, коли я натискаю на посилання активації зі свого електронного листа, мій обліковий запис не активується. Що я тут пропускаю?

Відповіді:

4 для відповіді № 1

Коли користувач зареєстрований, генерується URL-адреса для підтвердження адреси електронної пошти. Наприклад:

http://www.example.com/accounts/confirm-email/iq4ma0qw6fqazui7ilwd4b3vftg/

З ACCOUNT_CONFIRM_EMAIL_ON_GET встановлений в True користувач підтвердить електронну пошту, просто натиснувши кнопкупосилання. Це трапляється тому, що натиснувши на посилання, він запитає URL (GET), а отже, allauth позначить адресу електронної пошти як підтверджену, оскільки GET для цієї URL-адреси отримано.

З ACCOUNT_CONFIRM_EMAIL_ON_GET встановлений в False, коли користувач натисне на посилання, буде завантажена сторінка, де буде кнопка "Confirm e-mail address" або щось подібне. Потім користувач повинен натиснути на ту кнопку, яка генерує запит POST, який підтвердить електронну пошту. Це відбувається тому, що Аллаут позначатиме адресу електронної пошти як підтверджену лише в POST, а не на GET-запитах до URL-адреси підтвердження електронної пошти.


0 для відповіді № 2

Якщо ви подивитесь на джерело, ви можете побачити, що аргументи, передані перегляду з URL-адреси, будуть перенаправлені на метод post (), тобто користувач не побачить екран підтвердження.

https://github.com/pennersr/django-allauth/blob/master/allauth/account/views.py#L213