在此处阅读本教程。
我在查找有关我要完成的任何信息时遇到问题。
我目前使用自定义用户身份验证设置了rails应用。用户还在数据库中拥有一个角色字符串,用于确定他们在应用程序中看到和可以执行的操作。
ROLES = %w[non-profit company person]
def role_symbols
[role.to_sym]
end
在常规注册表单中,用户可以输入姓名,电子邮件地址,用户名和密码。并且还必须选择他们的用户角色。
Signup.html.erb
<h3>Choose Account Type </h3>
<%= f.input :role, :collection => User::ROLES.map { |s| [s.humanize, s] }, required: true, label: false, input_html: { class: 'input-md' } %>
我的目标是通过twitter和facebook omniauth登录表单。当他们点击使用twitter或facebook创建帐户时,我希望用户能够选择他们的角色。目前的omniauth配置我对如何添加自定义选择有点困惑。无论如何,确保用户在创建帐户之前通过链接推特或Facebook帐户来选择角色。
任何帮助都会很棒,谢谢你。
答案 0 :(得分:0)
让我们看一下oauth流程 - 在这个例子中我们使用facebook,但它可以是任何提供者。
/auth/facebook
的登录链接。 https://www.facebook.com/dialog/oauth...
/auth/callbacks/facebook
。您将获得包含信用和用户信息的哈希。您使用它的确切方式以及登录后重定向用户的方式取决于您。如果您希望用户向您提供其他详细信息,您可以通过在登录后重定向用户来完成此操作。 但是,您应首先创建用户帐户,然后允许用户提供其他详细信息。虽然技术上可以将凭证存放在某个地方OAuth本身很复杂,所以你不想在auth流程中投入一些额外的步骤。