django-rest-сброс пароля аутентификации отправка неправильного домена в электронной почте

#django #django-rest-framework #django-allauth #django-rest-auth

#django #django-rest-framework #django-allauth #django-rest-auth

Вопрос:

Я пытаюсь протестировать свою конфигурацию сброса пароля на моем локальном хостинге, используя django-rest-auth. Проверка электронной почты и регистрация работают, и я могу вызвать событие сброса пароля и отправить электронное письмо, но электронное письмо содержит неправильный домен. Прямо сейчас он передает ссылку, содержащую my-site.com домен 0.0.0.0:8000 , а не домен. Я запускаю приложение внутри контейнера docker, поэтому оно 0.0.0.0:8000 вместо 127.0.0.1:8000 .

Текущий результат:

 You're receiving this email because you requested a password reset for your user account at My Site.

Please go to the following page and choose a new password:

http://my-site.com/auth/password-reset/confirm/OA/55d-7dc2614593146ac3ce82/

Your username, in case you've forgotten: testaccount

Thanks for using our site!

The My Site team
  

Ожидаемый результат

 You're receiving this email because you requested a password reset for your user account at My Site.

Please go to the following page and choose a new password:

http://0.0.0.0:8000/auth/password-reset/confirm/OA/55d-7dc2614593146ac3ce82/

Your username, in case you've forgotten: testaccount

Thanks for using our site!

The My Site team
  

Мой URL-адрес для моей регистрации — это:

 from django.urls import path, include
from allauth.account.views import ConfirmEmailView
from . import views

urlpatterns = [
    path('registration/account-email-verification-sent/', views.null_view, name='account_email_verification_sent'),
    path('registration/account-confirm-email/<key>', ConfirmEmailView.as_view(), name='account_confirm_email'),
    path('registration/complete/', views.complete_view, name='account_confirm_complete'),
    path('password-reset/confirm/(<uidb64>/<token>/', views.null_view, name='password_reset_confirm'),
    path('', include('rest_auth.urls')),
    path('registration/', include('rest_auth.registration.urls')),
]
  

Я наткнулся на другое сообщение, в котором предлагалось изменить идентификатор сайта, но я не уверен, что это правильно.

Как мне заставить его передавать текущий обслуживаемый домен вместо домена с идентификатором сайта?

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

1. Где ваш PasswordResetView класс? Где он определен в вашем urls.py ?

2. Разве это не включено в django-allauth представления? Я allauth.urls включил в свой accounts/ URL-адрес, который срабатывает, когда происходит сброс пароля, или, по крайней мере, я думаю, что это так.

Ответ №1:

Простое решение

Шаг 1: Перейдите /admin/sites/site/ , вы увидите что-то похожее на приведенное ниже, введите описание изображения здесь

Шаг 2: Отредактируйте существующую запись со следующим значением, затем сохраните ее
Имя домена: 0.0.0.0: 8000
Отображаемое имя: название вашего сайта
введите описание изображения здесь

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

1. Я добавил сайт, но он по-прежнему перенаправляет на первый сайт, а не на тот, который я только что добавил.

2. Добавлено или отредактировано?

3. Я только что добавил 0.0.0.0: 8000, но URL-адрес, отправленный при сбросе пароля, по-прежнему указывает на my-site.com .

4. Да… Измените SITE_ID=2 настройки в

5. Дело в том, что Django использует SITE_ID значение в шаблоне сброса пароля