Привет всем У меня есть пара вопросов относительно рефакторинга некоторых старых конечных точек API, насколько это касается аутентификации. У меня есть представление, например ...
@csrf_exempt
# PARAMETERS: username, password
def submit_offer(request):
"""Submit an offer"""
username = request.GET.get("username")
password = request.GET.get("password")
# Authenticate user to set instance.user value into BuyerForm
user = authenticate(username=username, password=password)
if not user:
# Always want our potential Buyer to be logged in & authenticated
return JsonResponse({'message': 'Please login to continue.'})
if request.method == 'POST':
form = BuyerForm(request.POST, request.FILES)
if form.is_valid():
instance = form.save(commit=False)
# sets current user as Buyer.user
instance.user = user
instance.save()
return JsonResponse({'success': True}, status=200)
else:
data = form.errors.as_json()
return JsonResponse(data, status=400, safe=False)
else:
return JsonResponse(data={'status': 403})
Теперь каждое представление, которое использует форму и нуждается в захвате instance.user, имеет такие же строки кода ниже ... теперь я подумал, используя запрос .user справился бы с этой задачей, но при тестировании таким образом я получаю AnonymousUser, что меня смущает?
username = request.GET.get("username")
password = request.GET.get("password")
# Authenticate user to set instance.user value into BuyerForm
user = authenticate(username=username, password=password)
Теперь есть лучший способ аутентификации пользователя, как в обычном django просмотр с использованием request.user, вместо того, чтобы вручную проверять подлинность пользователя в каждом представлении? (отредактировано)