我正在使用带有 Simple JWT 的 Django REST 框架。我正在尝试创建一个用户注册页面。目前,我收到此错误
禁止 (403) CSRF 验证失败。请求中止。
失败原因:CSRF 令牌丢失或不正确。
在 settings.py 下,我添加了以下内容:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES' : ('rest_framework.permissions.IsAuthenticated',),
'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_simplejwt.authentication.JWTAuthentication',),
}
我的项目网址文件夹:
urlpatterns = [
path('admin/', admin.site.urls),
path("", include("my_api.urls")),
path('api-auth/', include('rest_framework.urls')),
path('api/token', TokenObtainPairView.as_view()),
path('api/token/refresh', TokenRefreshView.as_view()),
]
这是我的注册端点的应用程序视图。
def register(request):
if request.method == "POST":
email = request.POST["email"]
# Ensure password matches confirmation
password = request.POST["password"]
confirmation = request.POST["confirmation"]
if password != confirmation:
return render(request, "my_api/register.html", {
"message": "Passwords must match."
})
# Attempt to create new user
try:
# Creates a hashed password.
#password = make_password(password)
user = User.objects.create_user(username=email, email=email, password=password)
user.save()
except IntegrityError as e:
print(e)
return render(request, "my_api/register.html", {
"message": "Email address already taken."
})
login(request, user)
return HttpResponse("Successfully created account.")
else:
return render(request, "my_api/register.html")