#python #django #django-rest-framework
#питон #джанго #django-rest-фреймворк
Вопрос:
мои классы аутентификации и разрешений rest_framework
"DEFAULT_PERMISSION_CLASSES": [ "rest_framework.permissions.IsAuthenticated", "rest_framework.permissions.IsAdminUser", "rest_framework.permissions.AllowAny", ], "DEFAULT_AUTHENTICATION_CLASSES": ( "rest_framework_simplejwt.authentication.JWTAuthentication", "rest_framework.authentication.SessionAuthentication", "rest_framework.authentication.BasicAuthentication" ),
просмотр входа в систему
class UserLoginView(generics.RetrieveAPIView): """ View for a user to login through 1FA. The view provides a post request that accepts a email and password. Returns a jwt token as a response to authenticated user. """ throttle_scope = "login" permission_classes = (permissions.AllowAny,) serializer_class = UserLoginSerializer def post(self, request): """ POST request to login a user. """ #if session key is not present then create a session for the user serializer = self.serializer_class(data=request.data) serializer.is_valid(raise_exception=True) if not request.session.session_key: request.session.save() return Response("logged in")
В моем представлении входа в систему, если учетные данные пользователя действительны, я создаю сеанс пользователя, если он еще не создан. Для всех других запросов мне нужно убедиться , что у пользователя есть активный сеанс, т. Е. идентификатор сеанса в файле cookie и маркер csrf, чтобы защитить приложение, есть ли для этого метод, предоставляемый rest framework, или мне нужно написать свои собственные классы разрешений для представлений