1

ユーザーが Facebook を使用してサインインできるようにする場合、最初の認証後に新しいデバイス ユーザーを作成します。

1.ランダムなトークンで埋めますか?

では、ユーザーは新しく作成されたパスワードをどのように知るのでしょうか?

を。彼にメールを送りましょうか?
b. 彼の最初の Facebook 認証の後、フラッシュ メッセージとしてそれを書き込みますか?

ユーザーはいつでも Facebook でサインインできるのでパスワードを持っている必要はないかもしれませんが、パスワードを必要とするデバイスのユーザー フィールドを更新する必要があるかもしれません。

2. 空白のままにしますか?

次に、電子メールを知っている人は誰でも、devise サインイン フォームを使用してサインインできるようになります。

3. パスワードを要求するモーダル ウィンドウを表示しますか?

そうすることで、ユーザーが最終的に Web サイトにアクセスできるようになる前に、ステップが追加されます。

それで、推奨されるアプローチは何ですか?何かアドバイスはありますか?

編集

Ryan Bates on RailsCasts ( http://railscasts.com/episodes/236-omniauth-part-2?view=asciicast )

新しいユーザーを保存しようとしたときに検証が失敗した場合、問題を修正できるフォームにユーザーをリダイレクトします。彼は、新しいユーザーのパスワード フィールドをレンダリングすることを避けました。

<h2>Sign up</h2>

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
  <%= devise_error_messages! %>

  <p><%= f.label :email %><br />
  <%= f.text_field :email %></p>

<% if @user.password_required? %>
  <p><%= f.label :password %><br />
  <%= f.password_field :password %></p>

  <p><%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %></p>
<% end %>
  <p><%= f.submit "Sign up" %></p>
<% end %>

<%= render :partial => "devise/shared/links" %>

しかし、OmniAuth 登録ユーザーが devise sign in を使用してサインインしようとするとどうなるでしょうか?

4

1 に答える 1

0

Ryan BatesはRailsCastsでこれを取り上げ、oauthアカウントでサインアップした後にページにリダイレクトすることを提案しています。

このようにして、通常の方法でユーザーを登録することができ、さらにモデルを検証することができます。

これは、お客様がさまざまなプロバイダーにサインアップしても、デバイスの登録を維持できるようにするためです。

これを読んでください:

http://railscasts.com/episodes/236-omniauth-part-2?view=asciicast

それが役に立たない場合は、私に知らせてください。他に何が見つかるかを確認します。

于 2012-12-06T08:54:47.783 に答える