Ruby on rails 在密码重置期间显示设计验证密钥(电子邮件地址)

Ruby on rails 在密码重置期间显示设计验证密钥(电子邮件地址),ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我认为这是一个简单的例子,我想在密码重置期间显示身份验证密钥 首先,这样做有什么问题吗?有什么我要打开的洞吗?我控制何时创建用户并发送注册指示。我只有大约500个用户。我的系统在很多情况下,一年只使用几次,在小型公司只有一两名员工,平均10名员工。我们服务的一些公司不是为员工创建多个帐户,而是共享一个或多个帐户,即我为公司的特定人员创建帐户,然后他们与助手共享密码。我使用电子邮件地址作为身份验证密钥 你能猜到接下来会发生什么吗?这真的发生了!用户去度假,年轻的助手需要登录,忘记了密码,但足够精明

我认为这是一个简单的例子,我想在密码重置期间显示身份验证密钥

首先,这样做有什么问题吗?有什么我要打开的洞吗?我控制何时创建用户并发送注册指示。我只有大约500个用户。我的系统在很多情况下,一年只使用几次,在小型公司只有一两名员工,平均10名员工。我们服务的一些公司不是为员工创建多个帐户,而是共享一个或多个帐户,即我为公司的特定人员创建帐户,然后他们与助手共享密码。我使用电子邮件地址作为身份验证密钥

你能猜到接下来会发生什么吗?这真的发生了!用户去度假,年轻的助手需要登录,忘记了密码,但足够精明,点击忘记密码并重置它,她在老板不在时阅读老板的电子邮件。老板度假回来,需要登录,不能,但不够精明,不能点击忘记密码,也懒得阅读她不在时收到的电子邮件。于是她惊慌失措地打电话给我,生气地说:“怎么了,我不能登录!!!”。我的许多用户都是这样的,年纪大了,不懂电脑

因此,我需要采取额外的措施,以防白痴重置密码,我认为这应该包括突出显示他们将要重置的电子邮件地址,以及提醒任何“共享”帐户的人在重置时通知他们的同事的措辞

我在我的设计/密码/编辑中尝试了这个

<%= resource.email %>


上面的代码不会产生任何结果

您不应该公开身份验证数据。这就是为什么你从不用GET发送它们,而是用POST发送。做一些调查:gmail如何重置密码?还有一件事要记住,一旦你做了所有合理的事情,用户就有责任保护他的个人信息。如果秘书知道老板的一切,那就太糟糕了——除非他们想让你使用生物识别技术重置密码。

通常,要重置密码,用户必须输入要重置的帐户的电子邮件地址。这不是你正在做的方法吗?你不希望人们能够重置另一个用户帐户。是的,我的重置密码链接要求你输入电子邮件地址,它几乎是标准设备/passwords/new.html.erb格式,以匹配我的网站设计,这应该是你所要做的。无需向用户(或潜在入侵者)提供更多信息。共享账户通常是不受欢迎的,但如果他们这样做了,那么你的责任就到此为止了。你不需要改变任何东西,就像一个用户决定与他们的助手共享一个帐户,而助手改变了什么,这不是你的问题。这不是我担心的责任,我只是想防止愤怒的电话。在我的世界里,这种“老的不懂事的代理”和年轻助理的情况相当普遍。相信我,我第一次发现共享帐户的做法时,就极力劝阻用户。他们坚持说,运气不好。我不得不让我们的律师在我们的合同中加上一些措辞,专门为我们的行为提供赔偿。我的用户很奇怪,最难的是那些有名人为客户服务的用户,他们认为这让他们有权享受特殊待遇。顺便问一下,我如何公开身份验证数据?我不确定我是否理解这个评论?你的标题。我误解标题了吗?或者更确切地说,你所说的身份验证密钥是什么意思?是的,只是电子邮件地址,在Desive中通常称为身份验证密钥,如果任何人使用Desive并使用用户ID作为身份验证密钥而不是电子邮件地址固定标题,这很混乱,我认为只添加Desive标签就足够了,对不起