0

내가 future_customer 내 수 대표 리드라는 모델을 가지고 있습니다. 라는 부울 필드를 업데이트하기 위해안전 URL/AnonUser이 모델 필드 업데이트하는 페이지 - 장고 나머지 프레임 워크

이 모델에을 is_approved, 나는 URL와 함께 리드의 이메일 ID로 이메일을 전송하고있어 URL을 내 웹 사이트의 페이지로 이동합니다 승인을 요청합니다.

Django Rest 프레임 워크에서 권한을 어떻게 처리합니까? django 사용자가 리드 모델과 관련되어 있으며 인증 관련 클래스를 사용할 수 없습니다.

가려진 URL AllowAny 권한이 충분합니까?

답변

1

전자 메일의 유효성을 검사하는 일반적인 시나리오에서 일반적으로 발생하는 문제는 해당 전자 메일에 대해 고유 토큰을 생성한다는 것입니다. 그런 다음 사용자가 전자 메일을 클릭 할 때 그는 POST 페이지로 이동하거나 직접 확인하는 양식 제출이 가능한 페이지로 이동합니다.

유일한 보안은 고유 ID가 고유하고 누군가가 그 ID를 무차별 대입을 통해 생성 할 수있는 아주 드문 경우입니다. 그게 유일한 보안이야. 며칠 동안 만 링크를 유효하게하는 만료를 추가 할 수도 있습니다.

해당 이메일과 일치하는 해당 이메일과 업데이트 is_approved 입력란을 확인하십시오.

모델 및보기는 다음과 같아야합니다.

class Lead(models.Model): 
    email = models.EmailField() 
    unique_id = models.CharField(default=uuid.uuid4) 
    is_approved = models.BooleanField(default=False) 

    def get_absolute_url(self): 
     return reverse('lead_verification', kwargs={'unique_id': self.unique_id}) 


class LeadVerificationView(APIView): 

    def post(self, unique_id): 
     lead = Lead.objects.get(unique_id=unique_id) 
     lead.is_approved = True 
     lead.save() 
+0

사실 내가 그 일을 끝내 었습니다. Djoser의 activation_email 코드를 살펴 봤는데 URL에 uuid를 제외하고는 다른 보안 기능이 없습니다. 어쨌든 고마워. – pnhegde

+0

@pnhegde 그럼 당신의 질문에 여전히 대답하길 바랍니다. Upvote, 받아들이고 닫으십시오. :) –