我打算在 Devise on Rails 上构建自定义逻辑。逻辑如下:用户可以尝试登录,如果不存在,则为用户创建帐户。只是跳过注册过程。
现在确定如何入侵设计。请帮忙!
先感谢您!
编辑:对不起,我说得不够清楚:我已经在用户模型上实现了 on-create-validation 以向另一个系统进行身份验证。逻辑是:如果另一个系统的验证器成功,则使用相同的密码和登录用户创建一个新用户。
否则登录失败。
我打算在 Devise on Rails 上构建自定义逻辑。逻辑如下:用户可以尝试登录,如果不存在,则为用户创建帐户。只是跳过注册过程。
现在确定如何入侵设计。请帮忙!
先感谢您!
编辑:对不起,我说得不够清楚:我已经在用户模型上实现了 on-create-validation 以向另一个系统进行身份验证。逻辑是:如果另一个系统的验证器成功,则使用相同的密码和登录用户创建一个新用户。
否则登录失败。
您知道如果有人打错字,他会创建新帐户并且会因为他/她的所有东西都消失而生气吗?当用户数量很少时,这不是问题。但是,当您的社会发展壮大时,它可以使您成为一些黑公关。您应该通过 AJAX 调用检查是否有用户使用该电子邮件/用户名/昵称,如果没有,则显示注册表单,但另一方面,如果您的用户使用电子邮件或电子邮件等非公开数据登录,这可能是安全问题如果用户名与您页面上显示的昵称不同。
如果他们不小心输入了错误的密码或用户名怎么办?然后你只是自动为他们创建一个帐户?IMO 那将是一个糟糕的用户体验。您要么知道您的帐户,要么不知道。如果您有一个帐户但不记得了,那么您可以使用“忘记我的...”。如果你没有帐户,那么你去注册。您可以实施 oAuth 并使用来自多个站点(即 Github、Twitter、Facebook 等)的帐户,这将使其更容易。
为什么要跳过注册过程?我没有看到任何好处。
首先,用户可能不小心输入了错误的用户名或密码。其次,用户可以输入正确的用户名,但输入错误的密码。所以他/她已经是注册用户,但仍然获得一个新帐户。第三,当一个新用户被自动注册时,用户现在实际上是他的用户名,或者更重要的是,他的密码是什么?
就个人而言,为什么不添加“记住我”或“忘记密码”?到您的登录表单。如果出于任何原因,用户不想输入他的登录数据或根本不知道登录所需的密码,他可以使用这些选项。
或者,如果您正在使用权限,为什么不在有人未登录的情况下创建访客用户?