我正在使用Django中的dj-rest-auth为一个移动的应用程序开发一个身份验证API。用户注册帐户后,将向用户发送带有激活密钥的验证电子邮件。但是,当我尝试通过向验证端点发送POST请求来验证电子邮件时,我收到404 Not Found错误。我不确定问题出在哪里。
# main project urls.py
urlpatterns = [
# Other URL patterns...
path('register/', include('dj_rest_auth.registration.urls')),
# ...
]
设置
ACCOUNT_USER_MODEL_USERNAME_FIELD = None
ACCOUNT_USERNAME_REQUIRED = False
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_AUTHENTICATION_METHOD = 'email'
ACCOUNT_EMAIL_VERIFICATION = 'mandatory'
ACCOUNT_CONFIRM_EMAIL_ON_GET = True
#ACCOUNT_EMAIL_CONFIRMATION_ANONYMOUS_REDIRECT_URL = ''
#ACCOUNT_EMAIL_CONFIRMATION_AUTHENTICATED_REDIRECT_URL = ''
SITE_ID = 1
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'myEmail'
EMAIL_HOST_PASSWORD = 'password'
EMAIL_PORT = 587
EMAIL_CONFIRMATION_EXPIRE_DAYS = 7
#EMAIL_HOST_USER = os.environ.get("EMAIL_USER")
#EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_PASSWORD")
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
'rest_framework_simplejwt.authentication.JWTAuthentication',
]
}
SIMPLE_JWT = {
'USER_ID_FIELD': 'email',
'ACCESS_TOKEN_LIFETIME': datetime.timedelta(minutes=15),
'REFRESH_TOKEN_LIFETIME': datetime.timedelta(days=10),
'ROTATE_REFRESH_TOKENS': True,
}
LOGIN_URL = 'https://localhost:8000/login/'
REST_AUTH = {
'USER_DETAILS_SERIALIZER' : 'users.serializers.CustomUserDetailsSerializer',
'REGISTER_SERIALIZER': 'users.serializers.UserRegisterSerializer',
'USE_JWT': True,
'JWT_AUTH_COOKIE': 'my-app-auth',
'JWT_AUTH_REFRESH_COOKIE': 'my-refresh-token',
'JWT_AUTH_HTTPONLY':False,
}
AUTHENTICATION_BACKENDS = [
'allauth.account.auth_backends.AuthenticationBackend',
'django.contrib.auth.backends.ModelBackend',
]
问题:
当我尝试通过使用激活密钥向/register/verify-email/
端点发送POST请求来验证电子邮件时,我收到一个404 Not Found错误,正文为{ "detail": "Not found." }
我会很感激任何指导什么可能会导致电子邮件验证过程中的404错误。如果您遇到过类似的问题,或者您对如何解决此问题有建议,我将非常感谢您的见解。
1条答案
按热度按时间4ioopgfo1#
404 Not Found 404 Not Found您访问的页面不存在!
你正在寻找/register/verify-email/,确保它存在于你的dj_rest_auth.registration.urls中