Аутентификация Django/Apache успешна, но не возвращает представление @loginrequired, а перенаправляет на индекс
У меня есть приложение Django/Vue с аутентификацией на основе токенов. Раньше я обслуживал это приложение на AWS без проблем. Теперь я хочу обслуживать его через Apache2, но оно не может открыть страницу 'login required' после успешного входа. Вот мой код:
views.py
def index(request):
print('Access to page "home"')
return render(request, 'index.html')
@login_required(login_url='/')
def memory(request):
print('Access to page "memory"')
return render(request, 'memory.html')
user_api.py
@api_view(["POST"])
@permission_classes((AllowAny,))
@csrf_exempt
def doLogin(request):
body_unicode = request.body.decode('utf-8')
user = json.loads(body_unicode)
dbUser = User.objects.filter(username=user['username'])
if not dbUser:
return HttpResponse(status=404)
authenticatedUser = authenticate(username=user['username'], password=user['password'])
if authenticatedUser:
login(request, authenticatedUser)
token, _ = Token.objects.get_or_create(user=authenticatedUser)
return Response({'token': token.key},
status=HTTP_200_OK)
else:
return Response(status=401)
LoginModal.vue
login() {
if (!this.user.username || this.user.username == '' ||
!this.user.password || this.user.password == '') {
this.warningText = 'All fields must be filled.'
return
}
axios.post(this.backendAddress + 'api/user/login', this.user)
.then((response) => {
sessionStorage.setItem('token', response.data.token)
document.cookie = 'apitoken=' + response.data.token
window.location.href = 'memory'
}, function (err) {
printError(err)
})
}
После того, как я ввел имя пользователя/пароль и нажал login, он делает запрос и перенаправляет на index с ?next=memory, что означает, что он не распознал пользователя как вошедшего. После успешного входа я сохраняю свой токен как параметр 'apitoken' в cookie. Что не так с моим методом?
Спасибо.