Как обрабатывать токен в dajngo rest, когда пользователь закрывает браузер?
Я новичок в Django rest framework и я использую токен аут Django rest, но я понятия не имею, как обрабатывать токен, когда пользователь напрямую закрывает браузер без выхода, В таком случае, что будет стандартным способом?
Также, я хочу реализовать, если пользователь уже вошел в систему, то перенаправить его на приборную панель, как это реализовать? Мои представления выглядят следующим образом.
class LoginTemplateClass(TemplateView):
template_name = 'index.html'
class LoginAPI(viewsets.ModelViewSet):
serializer_class = LoginSerializer
def post(self,request):
try:
serializer = self.serializer_class(data=request.data,context={'request': request})
if serializer.is_valid():
user = serializer.validated_data['user']
token, created = Token.objects.get_or_create(user=user)
return Response(token.key,status = 200)
return Response(serializer.errors,status = 400)
except Exception as e:
return Response({},status = 500)
Как обрабатывать токен, когда пользователь напрямую закрывает браузер без выхода из системы, В таком случае какой будет стандартный способ?
Как правило, вы хотите, чтобы пользователь в течение некоторого времени оставался зарегистрированным на вашем сайте. Cookies обычно используются для сохранения информации о входе в систему, поскольку она будет храниться на стороне клиента.
Итак, как должен выглядеть ваш поток входа в систему
see if cookie exists -> yes, then check if token exists in your backend
|
-----> no, then create a token and set it on the browser cookie with a reasonable timeout.
Также я хочу реализовать, если пользователь уже вошел в систему, то перенаправление на приборную панель, как это реализовать?
Есть два способа сделать это,
- вы можете рендерить html-файл в операторе return вместо отправки http-ответа. Используйте функцию Render() ссылка на doc .
- Вы можете перенаправить функцию login на возврат другого представления, например indexView. Используйте функцию Redirect() ссылка на doc