设计:创建没有密码的用户

q

在我们的应用程序中,我们有普通用户。但是,我们希望能够发出邀请,邀请某些人。请注意,邀请直接耦合到用户,因为我们希望已经能够为这些用户设置某些设置。(我们正在将客户从旧软件减少到新软件)。

所以:

  • 管理员应该能够创建一个新用户并更改其设置。
  • 当某人点击其链接时invitation_token,他们应该看到一个表单,可以在其中设置其帐户的密码。

我遇到的麻烦是如何使管理员能够绕过常规密码验证来创建用户帐户。如果需要设置默认密码,那将是一个可怕的解决方案,因为这将造成严重的安全漏洞。

如何在Devise中创建新用户而不提供密码?

朱马科夫

至少有两种方法可以执行所需的操作:

方法1:

重载设计password_required?方法

class User < ActiveRecord::Base
  attr_accessor :skip_password_validation  # virtual attribute to skip password validation while saving

  protected

  def password_required?
    return false if skip_password_validation
    super
  end
end

用法:

@user.skip_password_validation = true
@user.save

方法2:

使用以下validate: false选项禁用验证

user.save(validate: false)

这将跳过所有字段的验证(不仅限于密码)。在这种情况下,您应确保所有其他字段均有效。

...

但我建议您在特定情况下不要创建没有密码的用户。我将创建一些其他表(例如invitations),并存储所有必需的信息,包括您希望在确认后分配给用户的字段。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

创建没有密码的用户

Firebase Admin SDK - 创建没有密码的用户是否安全?

没有密码创建的 Firebase 用户仍然可以登录吗?

MongoDB Ruby 驱动程序 - 创建没有密码的用户

是否可以仅为用户创建ssh密码而没有任何密码?

我可以在Meteor中创建没有用户名或密码的用户吗?

在Redhat上创建具有密码且没有SSH密钥的用户

创建没有密码的用户的行为就像他有一个密码一样

如何创建没有密码的用户并在以后使用Devise表单进行设置?

在Rails中使用Devise gem时,如何创建没有电子邮件和密码的用户?

显示用户设计创建的所有文章

没有密码的AWS Cognito用户池

以没有密码的用户身份图形登录

Vagrantfile 创建用户密码

有没有一种方法可以为使用C#.NET身份创建的用户帐户创建主密码?

可恢复设计-为用户创建一个视图以发送重置密码电子邮件

PDF 可以有用户密码而没有所有者密码吗?

Ubuntu 是否阻止了没有密码的单用户模式

没有用户目录的无密码ssh设置

如果没有登录,用户如何更改密码

允许用户在没有密码的情况下使用sudo

没有密码的SSH不适用于用户postgres

如何列出没有强密码的用户?

没有登录外壳的“系统用户”的无密码SSH

没有密码的用户可以通过ssh登录吗?

为什么在“恢复模式”下没有root用户密码?

没有密码以固定命令的根用户身份运行命令?

su-没有密码的用户无法使用

Visudo-更改没有密码的用户无效