Безопасная передача токена авторизации из шаблона в статический javascript в Django
Я добавляю пользовательскую страницу администрирования на сайт администратора Django, где вошедший пользователь может открыть текстовый файл, затем он разбирается, и разобранные данные добавляются как новая запись в таблицу с использованием назначенного пользователю токена. Безопасен ли описанный ниже метод? Есть ли лучшая стратегия?
Я добавил пользовательский шаблон:
{% extends "admin/change_form.html" %}
{% load static %}
{% block extrahead %}
{{ block.super }}
<script type="application/javascript" src="{% static 'js/add_cal_file.js' %}"></script>
{% endblock extrahead %}
{% block content %}
<h1>Add cal file</h1>
<div class="mb-3">
<input class="form-control" type="file" id="formFile" accept=".cal" token="{{ request.user.auth_token }}">
</div>
{% endblock %}
Когда пользователь выбирает файл, вызывается следующий парсер в static 'js/add_cal_file.js
:
const parseCal = async (fileContents, token) => {
// parses fileContents to postRequest here
const response = await fetch("/api/add-calibration", {
method: 'POST',
headers: {"Content-Type": "application/json",
"Authorization": "Token "+token
},
body: JSON.stringify(postRequest)
})
}
Представление по адресу /api/add-calibration защищено с помощью @permission_classes([IsAuthenticated])
, ограничивающего его только запросами, которые предоставляют токен авторизации