ユーザーが 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 を使用してサインインしようとするとどうなるでしょうか?