Не удается установить сеанс пользователя с Vue и Django - PullRequest
0 голосов
/ 20 сентября 2018

У меня есть приложение Vue и API-интерфейс остальных компонентов Django.Один на локальном хосте: 8080 (приложение vue), а остальные API на локальном хосте: 8000.

Итак, я создал APIView, который должен регистрировать пользователя, когда он делает запрос на публикацию:

class LoginUserAPIView(APIView):
    permission_classes = () # login should be accessed by anyone, no restrictions.
    def post(self, request, format=None):
        username = request.data['username']
        password = request.data['password']

        user = authenticate(username=username, password=password)

        if user is not None:
            login(request, user)
            user = UserSerializer(user)
            return Response({'success': 'Logged in', 'user': user.data})
        return Response({'wrong': 'username or password not correct, try again'}, status=status.HTTP_401_UNAUTHORIZED)

И я пытался получить сеанс пользователя от django с помощью axios:

login() {
      this.isLoading = true;
      return axios({
        method: 'post',
        url: 'http://localhost:8000/api/login_user',
        data: {
          username: this.name,
          password: this.password
        },
        headers: {
          'Content-Type': 'application/json'
        }
      })
      .then(response => {
        this.$store.commit('loginAuth', true); // setting isAuth to true in vuex store.
        this.$store.commit('setUser', response.data.user); // to access the user object since I don't use django templates
        this.$router.push({name: 'page'}); // redirect to random test page that requires authorization so I can see if everything went fine.
      })
      .catch(err => {
        console.error(err);
        if (err.response.status == 401) {
          alert(err.response.data.wrong);
          this.isLoading = false;
        }
      })

, но я был наивен и думал, что это сработает, поэтому, когда я проверял приложение vue на наличие файлов cookie или сеансов, ничего.

Как установить сеанс пользователя для отдельного приложения vue?

Заранее спасибо, извиняюсь за недостаток знаний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...