source

django rest 프레임워크 + vue SPA 인증 처리

factcode 2022. 8. 25. 23:47
반응형

django rest 프레임워크 + vue SPA 인증 처리

인증된 사용자(사용자 프로파일의 데이터를 취득하는 사용자 글로벌오브젝트 등)에게 제공하는 기능과 동일한 기능을 1페이지 애플리케이션(물론 Vue Router 사용)에 제공하려면 어떻게 해야 합니다.

내 요점은 사용자가 사용자 이름과 비밀번호를 입력한 후 로그인을 유지하기 위해 어떻게 django 미들웨어와 동등한 vue용 미들웨어를 만들 수 있는지 모르겠다는 것입니다.

django rest 프레임워크 jwt를 사용하여 엔드포인트를 구현할 수 있다는 것을 알고 있습니다./api-token-auth/api에서 정보를 취득할 수 있도록 필요한 토큰을 취득(localStorge에 저장하여 axios 헤더에 저장 가능)하지만 토큰 이외의 사용자 세션은 없습니다.물론 템플릿에 전달된 사용자에 대한 정보는 없습니다.

사용자 글로벌 개체를 모든 템플릿에 전달하려면 어떻게 해야 합니까?그렇게 할 수 있는 쉬운 방법이 있을까요?

잘 부탁드립니다.

세션 인증은 다음을 추가하여 Django REST Framework를 사용하여 구현할 수 있습니다.SessionAuthentication로 분류하다.settings.py다음과 같이 합니다.

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.SessionAuthentication',
    ),
   'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}

이 방법은Django's디폴트 세션백엔드를 지정합니다.캐치는 PUT, PATCH, POST, DELETE 등의 "안전하지 않은" HTTP 메서드 호출에 유효한 CSRF 토큰을 포함해야 합니다.

현재 사용자에게 액세스하기 위해 API 끝점을 만들 수 있습니다./users/current와 함께

class CurrentUserView(APIView):
    def get(self, request):
        serializer = UserSerializer(request.user)
        return Response(serializer.data)

언급URL : https://stackoverflow.com/questions/52354116/handling-django-rest-framework-vue-spa-auth

반응형