Я создал конечную точку API для создания нового пользователя с использованием представлений Django, а не DRF.
@csrf_exempt
def user_create(request):
if request.method == 'POST':
form_data = json.loads(request.body)
form = MyUserCreationForm(form_data)
if form.is_valid():
user = form.save()
payload = {
'id': user.id,
'username': user.username,
}
jwt_token = {'token': jwt.encode(payload, settings.SECRET_KEY, algorithm='HS256').decode('utf-8')}
response = HttpResponse(
json.dumps(jwt_token, cls=DjangoJSONEncoder),
content_type="application/json"
)
return response
Теперь, если пользователь создан, я получаю JSON с токеном jwt.
IЯ хочу создать другое представление Django, которое будет проверять пользователя на основе токена jwt и при аутентификации отправлять мне необходимую информацию.
В обычном представлении django мы используем @login_required, который позволяет промежуточному программному обеспечению проверять подлинность.
Есть ли что-то похожее для jwt с обычными представлениями django.
Я знаю, что djangorestframework-jwt работает с представлениями DRF, добавляя его в промежуточное ПО настроек DRF.
Если я добавлю djangorestframework-jwt в настройки промежуточного программного обеспечения представлений Django, это будет работать.