したがって、基本的には、Googleの2要素認証の実装に似たものを実現したいと考えています。私のログインフォームは、2ステップのフォームウィザードで構成されています。
- ステップ1(ユーザー名とパスワードの確認)
- ステップ2(セキュリティトークンを認証する)
使用シナリオは次のようになります。
- ユーザーは自分のアカウントに関連付けられたセキュリティトークンを持っています:ユーザーがステップ1とステップ2に合格した場合、ユーザーをログインさせます
- ユーザーはセキュリティトークンを持っていません:ステップ1を通過した直後にのみユーザーをログインさせます
ログインビューとして使用するために、djangoのフォームウィザードをサブクラス化しています。ステップ2では、デフォルトでDjangoFormWizardに以前に送信されたフォームのフィールド値が非表示フィールドとして含まれます。ただし、ご存知のように、パスワードはステップ1で入力するため、セキュリティ上の理由から、ステップ2には含めたくありません。
私の最初の考えは、ユーザーがステップ1に合格したかどうかを示すためにセッションを使用することでした。したがって、ステップ1のフィールド値を含める必要はありません。しかし、ここで何かを見落としている可能性があります。これに対するより安全な解決策は何ですか?
また、FormWizardでのセキュリティハッシュの使用についてもよくわかりません。誰かが説明できますか?
どうもありがとう。