0

私は自分の可能future_customerを表しリードと呼ばれるモデルを持っています。 と呼ばれるブール値フィールドを更新するためにセキュアURL /ページ - ジャンゴレストフレームワーク

がこのモデルでをis_approved、私はURLとともにリードの電子メールIDに電子メールを送信することだし、このURLは私のウェブサイト内のページに移動しますここで承認を求めます。

許可の処理方法Django Rest frameworkビュー? 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、受け入れて閉じる。 :) –

関連する問題