Есть ли решение для аутентификации с помощью vuejs и django? - PullRequest
0 голосов
/ 19 февраля 2019

Я использую фреймворк Django в качестве бэкенда, а vue.js и webpack для фронтэнда.для реализации аутентификации отправьте запрос через ajax на Django и хотите сохранить сеанс для следующих запросов, но не можете сохранить сеанс.

Я использую модуль узла request для отправки запроса и использую jar сохранить сеанс, но снова получить ошибку 403.это означает, что jar не сохраняет сеанс для этого пользователя.

в vuejs:

var request = require('request');

get_jar(){
    if(this.jar){
        return this.jar;
    }
    this.jar = request.jar();
    return this.jar;
}

send_ajax(url, data, method, callback){
    request(
        {
            url: url,
            method: method,
            form: data,
            jar: this.get_jar(),
        },
        function(err, res, body){
            callback(err, res, body)
        });
}

в django:

@method_decorator(csrf_exempt, 'dispatch')
class Login(View):
    @staticmethod
    def post(request):
        email = request.POST.get('email', None)
        password = request.POST.get('password', None)
        user = authenticate(request, username=email, password=password)
        if user is None:
            return JsonResponse({'message': 'incorrect username or password'}, status=403)
        else:
            login(request, user)
            return JsonResponse({'message': 'user logged in'})

декоратор для проверки журнала пользователяв:

def user_login_required(method):
    @wraps(method)
    def wrap(request, *args, **kwargs):
        if request.user.is_authenticated:
            return method(request, *args, **kwargs)
        else:
            return JsonResponse({'message': 'user not recognized'}, status=403)
    return wrap

Может кто-нибудь мне помочь, пожалуйста?

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