2

私は工夫で奇妙なことを試みています。ここでは、2種類のログインがあります。

1)ユーザー名とパスワードを使用したデフォルトのデバイスログイン。

2)ユーザーIDとパスワードでログインします。

2番目のステップのパスワード(password2)は、最初のステップのパスワード(password1)とは異なります。同じインターフェースを使用して両方 からログインしたい。つまり、電子メールまたはユーザーIDと対応するパスワード(それぞれpassword1またはpassword2)を入力する必要がある1つのログインページがあります。

工夫で同じことをすることは可能ですか?

ありがとうParitosh

4

2 に答える 2

1

複数のユーザー識別子を許可することについては、ここにリンクしている Devise wiki で説明されています

更新: ただし、私が理解しているように、何らかの理由で 2 つの別個の資格情報セット (userid/pw1 と email/pw2) が必要です。

あなたの質問に対する答えは、「Devise で達成することは可能ですが、Devise を変更することは、自分で作成するよりもはるかに多くの労力を必要とする」ということだと思います。リンクを見ると、同じパスワードに対してユーザーIDまたは電子メールのいずれかを受け入れるという単純な変更を行うには、実際にはかなりの作業が必要です。要件を実装すると、さらに複雑になります。

独自のシステムをゼロから実際に作成しない限り、Devise または Rails のビルトインはhas_secure_passwordどちらも、パスワードを保持する属性の名前 (つまり、 という名前) についていくつかの仮定を行いますpasswordまた、認証情報とこの属性を含む (単一の) モデルがあるという前提がありますが、 2 つのモデル (おそらく両方とも) に属するモデルを使用できない理由はわかりません。User各モデルは、ユーザーが使用したメソッドの属性を暗号化、保存、および検証する基本的な機能を提供しますが、他のすべての機能は親 User レコード、およびそのコントローラーとビューによって提供されます。User モデルのいくつかの単純なロジックは、どのメソッドが使用されているかを判断し、その機能を適切なサブモデルにファームオフします。

ええ、それは可能has_secure_passwordです。あなたの珍しいケースでは、より簡単になることをお勧めします。

しかし、質問する価値はあるかもしれません。もし私がこの状況に遭遇した最初の人なら、既存の慣習やアプローチに従う私の要件を満たす代替手段があるかもしれません。たとえば、これは複数の無関係なサービスの認証を提供する「シングル サインオン」インターフェイスですか? もしそうなら、それは検索するものかもしれません。

于 2012-11-28T15:23:16.140 に答える
0

これは、ユーザー名と電子メールの両方でログインするための完全なチュートリアルです。ユーザー名を user_id または必要なものに置き換えることができます。

于 2012-11-28T15:55:04.347 に答える