2014-09-29 2 views
2

클래스를 확장하여 장고 API보기를 작성하고 있습니다.Django보기를 Unauthenticated 사용자 만 액세스 할 수있게 만드는 방법은 무엇입니까?

나는 인증 된 사용자 만 호출 할 수있는 많은 API를 성공적으로 구축했습니다. 나는 다음을 추가하여 이것을 수행했다 : permission_classes = [permissions.IsAuthenticated,]

인증되지 않은 사용자 만 전화를 걸기를 원하는 일부 API가있다. "ForgotPassword"와 같은 기본적으로 API 호출자가 요청 헤더의 JWT 토큰을 보내지 않도록하고 싶습니다. 어떻게 시행 할 수 있습니까? permissions.IsUnAuthenticated은 없습니다.

from rest_framework.permissions import BasePermission 


class IsNotAuthenticated(BasePermission): 
    """ 
    Allows access only to non authenticated users. 
    """ 
    def has_permission(self, request, view): 
     return not request.user.is_authenticated() 

다음 : permission_classes = (myapp.permissions.IsNotAuthenticated,)

관련

답변

4

당신은 쉽게 자신의 IsNotAuthenticated 클래스 같은

뭔가를 만들 수 있습니다.

0

기능 기반보기를 사용하는 경우 다음을 사용하면 좋을 것입니다.

from django.contrib.auth.decorators import user_passes_test 
@user_passes_test(lambda u: not u.is_authenticated()) 
관련 문제