DRF и аутентификация Knox: Демонстрационные учетные записи, где пользователю не нужно вводить учетные данные
Я делаю приложение с React в качестве фронт-энда и обрабатываю аутентификацию с помощью knox. Все работает хорошо, но мне нужна возможность для пользователей входить на предварительно созданные демо-счета без ввода учетных данных. Я не могу понять, как это сделать с помощью Knox на бэкенде, и я не могу сохранить информацию для входа в систему в моем javascript. Есть идеи, как этого добиться?
Нокс:
class LoginAPI(KnoxLoginView):
authentication_classes = [BasicLikeAuthentication]
def get_post_response_data(self, request, token, instance):
user = request.user
data = {
'expiry': self.format_expiry_datetime(instance.expiry),
'token': token,
'user': user.username,
'role': user.roles.assigned_role
}
return data
Передняя часть для обычного входа в систему:
const handleSubmit = (event) => {
event.preventDefault();
const data = new FormData(event.currentTarget);
const credentials = btoa(`${data.get('username')}:${data.get('password')}`);
const requestOptions = {
method: "POST",
credentials: 'include',
headers: {
'Accept': 'application/json, text/plain, */*',
'Content-Type': 'application/json',
"Authorization": `Basic ${credentials}`
},
body: JSON.stringify({})
}
fetch('http://127.0.0.1:8000/api/login/', requestOptions)
.then(response => {
if (response.status === 401) {
setFailedLogin(true)
}
return response.json()
})
.then(data => {
localStorage.setItem('token', data['token'])
})
.then(fetchCurrentUser)
.then(() => {
localStorage.getItem('role') == "Admin"
? navigate("/manage")
: navigate("/maindash")
})
.catch(error => console.log(error))
}