建议用于处理用户登录的新Facebook的密码?

时间:2012-12-06 07:47:54

标签: facebook ruby-on-rails-3 authentication devise facebook-authentication

当让用户使用Facebook登录时,我会在首次身份验证后创建一个新的设备用户,问题是对于新创建的用户的密码,最好的做法是什么?

1。用随机令牌填充它?

那么,用户如何知道新创建的密码?

  

一个。我可以给他发一封电子邮件吗?   湾在第一次Facebook身份验证后将其写为flash消息   ?

我知道用户可能不需要密码,因为他总是可以使用Facebook登录,但是,他可能需要更新他的设计用户字段,这将需要密码。

2。把它留空?

  

然后,任何人都知道电子邮件将能够使用设计登录   登录表格。

第3。显示要求输入密码的模态窗口?

  

这样做,它会在用户最终访问之前添加一个步骤   网站。

那么,推荐的方法是什么?任何建议?

修改

Ryan Bates on RailsCasts at 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注册用户尝试使用设计登录时会发生什么?

1 个答案:

答案 0 :(得分:0)

Ryan Bates在RailsCasts上对此进行了报道,并建议您在使用他们的oauth帐户注册后将其重定向到某个页面。

通过这种方式,您仍然可以以正常方式注册用户,并且您可以验证模型。

我们这样做,以便客户可以与不同的提供商签约,并仍然保持我们的设计注册。

读一读:

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

如果这没用,请告诉我,我会看到我们还能为您找到什么