Django request.user становится AnonymousUser после перенаправления - PullRequest
0 голосов
/ 04 февраля 2020

Проблема здесь в том, что request.user всегда переключается на AnonymousUser после перенаправления. Я пишу свой собственный метод входа и аутентификацию, потому что я не использую пароль для входа. Вот мой код

#app/view.py
def login(request):
    template = 'index.html'
    if request.method == "POST":
        userId = request.POST.get('userId', '')
        displayName = request.POST.get('displayName', '')
        user = auth.authenticate(userId=userId, displayName=displayName)

        if user.is_authenticated:
            auth.login(request, user)
            return redirect('home') ##### if change to "render(request, template, locals())", will see request.user as logged in user #####
        else:
            return render(request, template, locals())
    else:
        return HttpResponse('')

    def home(request):
        template = 'index.html'
        user = request.user
        return render(request, template, locals())

Я проверяю, вошел ли request.user в систему javascript. Если нет, используйте функцию post для / login / URI. Liff.getProfile () - моя сторонняя javascript функция для получения userId и displayName из профиля.

#html.javascript
DjangoLogin="{{request.user}}";
      if (DjangoLogin=="AnonymousUser"){
        liff.getProfile().then(function(profile) {
            userId = profile.userId;
            displayName = profile.displayName;
            post('/login/',{ 'userId': userId, 'displayName': displayName, 'csrfmiddlewaretoken': '{{ csrf_token }}'});
          });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...