1

ユーザーの Facebook アカウントを使用して、ほとんどのフィールドが事前に入力されているサインアップ フォームがあります。ユーザーが上書きできないように、電子メールなどのいくつかのフィールドを作成したいと思います。これを解決する方法はありますか?

更新: 多分これはもっと理にかなっています... 私が持っているのはサインアップフォームです:

  1. 最初にユーザーの Facebook アカウントからの情報が事前に入力され、
  2. 次に、ユーザーはパスワードなどの追加フィールドに入力する必要があります。
  3. フォームが送信されると、そのフォーム データを使用して新しいユーザーが作成されます。

私が望むのは、 Facebookから取得し、サインアップ フォームの事前入力に使用した電子メールが、新しいユーザー レコードを作成する時点で同じであることを確認することです。

Facebook から受け取ったメールと、フォームが送信されたときに受け取ったメールを比較する方法、またはユーザーがそのフィールドを編集できないようにする方法が必要です。

メールをユーザーセッションに保存することを考えていました...しかし、それは正しくありません...

ありがとう!

4

2 に答える 2

2

HTML の入力フィールドを無効にすることができます。これにより、ユーザーは値を編集できなくなります。ただし、firebug のようなツールを使用すると、簡単に「ハッキング」できます。ほとんどの人はそうしませんが、通常はこれで十分です。

本当に強制したい場合は、データベースに送信する直前に、サーバー側のパラメーターを削除する必要があります。1 つの方法は、独自の動的な attr_accessibleを実装することです。もう 1 つの方法は、params ハッシュからそれらを削除することです。

于 2010-12-12T16:05:19.897 に答える
0

あなたが提案するように、私はあなたがFacebookから保持したいものをセッションに保存します。もちろん、ユーザーが送信したものを信頼することはできないため、サーバー側で受け取った重要なものはすべて保持する必要があります。

変更できないようにしたくない場合は、電子メールの入力フィールドを提供する理由はありません。私はそれを表示するだけです。

attr_protected :emailフィールドへの意図しない更新がないことを確認できるように、電子メールでの使用 (または attr_accessible を使用することをお勧めします)を検討することをお勧めします。

于 2010-12-12T18:58:19.743 に答える