Есть ли способ использовать csrf_token в django_rest_framework без использования внешнего интерфейса в django? - PullRequest
0 голосов
/ 09 июля 2019

Я использую фреймворк django для создания остальных API для регистрации, но когда я это делаю, csrf_token не устанавливается, так как не установлен внешний интерфейс.

Таким образом, почтовый запрос не выполняется в POSTMAN.Я хочу каким-то образом сделать мои остальные api без отключения csrf в моей программе.

Я попытался скопировать токен csrf в cookie и получить доступ к этому cookie, чтобы убедиться, что POSTMAN подтвердил, что он не работает и для запроса POST..

Я попытался установить заголовок в почтальоне, но он также оказался только запросом GET.

from django.views.decorators.csrf import ensure_csrf_cookie
@ensure_csrf_cookie
@csrf_exempt
def addToTable(request):
    response = HttpResponse('blah')
    response.set_cookie('csrftoken', get_token(request))
    c = get_token(request)
    response.set_cookie('csrftoken', c)
    d = request.COOKIES['csrftoken']
    if request.method == 'POST':
        row_data = request.read()
        data = json.loads(row_data)
        a = data['MyName']
        b = data['MyPassword']
        post = Post()
        post.MyName = a
        post.MyPassword = b
        post.save()
        response.delete_cookie('csrftoken')
        return JsonResponse({'My Name ':a+ "and " + c + " is added to database and it is a post request."})
    else:
        response.delete_cookie('csrftoken')
        return JsonResponse({'username ': d + " Data is not added to database and it is a get request." + c}) 
    return 0

Я хочу, чтобы мои остальные API-интерфейсы работали для регистрации, когда я передаю ему данные JSON из POSTMAN без отключения csrf.

1 Ответ

0 голосов
/ 09 июля 2019

Вам необходимо отправить CSRF token в заголовках почтальона. X-CSRFToken - это ключ, а значение - токен CSRF из cookie.

...