Django注册,强制电子邮件唯一后邮件激活失败(签名错误)
我对django的注册有问题。在我强制发送唯一的电子邮件之前,一切正常 我有应用程序的基本框架。这很好:Django注册,强制电子邮件唯一后邮件激活失败(签名错误),django,django-registration,Django,Django Registration,我对django的注册有问题。在我强制发送唯一的电子邮件之前,一切正常 我有应用程序的基本框架。这很好: auth_patterns = [ url(r'^', include('registration.backends.hmac.urls')), ] urlpatterns = i18n_patterns( url(r'^admin/', admin.site.urls), url(r'^$', login_required(HomeView.as_view()),
auth_patterns = [
url(r'^', include('registration.backends.hmac.urls')),
]
urlpatterns = i18n_patterns(
url(r'^admin/', admin.site.urls),
url(r'^$', login_required(HomeView.as_view()), name='index'),
url(r'^accounts/', include(auth_patterns)),
)
但是当我加上
url(r'^register/$',
RegistrationView.as_view(form_class=RegistrationFormUniqueEmail),
name='registration_register'
),
在auth_模式中,我在邮件上获得激活链接
http://localhost:8000/en/accounts/activate/98a3585128c1b6899e4493768d4e62a52764fc5f/
但是点击之后我得到了
Account activation failed
从我的模板(activate.html)
我在浏览器控制台/或./manage.py runserver输出中没有错误,没有任何错误。当我尝试调试注册插件时,我注意到注册插件在此代码中以None返回用户(registration.backends.hmac.views.ActivationView):
这是一个糟糕的签名,但为什么呢?有人有这个问题吗?如何解决它?我很感激它现在已经被移动了。我使用的是django注册==2.3 如果URL.py具有以下内容,则它应该可以工作: 从registration.backends.hmac.views导入注册视图 从registration.forms导入RegistrationFormUniqueEmail 类注册视图UniqueEmail(注册视图): form_class=注册FormUniqueMail 。。。 urlpatterns=i18n\u模式(
您是否更改了
SECRET\u KEY
设置?您最终是否能正常工作?我遇到了类似的问题,即将放弃UniqueMail的注册。效果非常好。
def validate_key(self, activation_key):
"""
Verify that the activation key is valid and within the
permitted activation time window, returning the username if
valid or ``None`` if not.
"""
try:
username = signing.loads(
activation_key,
salt=REGISTRATION_SALT,
max_age=settings.ACCOUNT_ACTIVATION_DAYS * 86400
)
return username
# SignatureExpired is a subclass of BadSignature, so this will
# catch either one.
except signing.BadSignature:
return None
url(r'^accounts/register/$', RegistrationViewUniqueEmail.as_view(), name='registration_register'),
url(r'^accounts/', include('registration.backends.hmac.urls')),