【问题标题】:show DEVISE authentication key (email Address ) during password reset在密码重置期间显示 DEVISE 身份验证密钥(电子邮件地址)
【发布时间】:2012-04-02 17:41:17
【问题描述】:

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

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

你能猜出接下来会发生什么吗?这真的发生了!用户去度假,小助理需要登录,忘记密码,但精通点击忘记密码并重置,她在老板不在时阅读老板的电子邮件。老板度假回来,需要登录,不能,但不够精明,无法点击忘记密码,也没有费心阅读她离开时收到的电子邮件。所以她惊慌失措地打电话生气,“怎么了,我无法登录!!!”。我的许多用户都是这样,年纪大了,不懂计算机。

所以我需要采取额外的步骤来证明重置密码是愚蠢的,我认为这应该包括他们将要重置的电子邮件地址的突出显示,以及提醒任何“共享”帐户的人通知他们的同事的措辞-工人如果他们重置。

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

<%= resource.email %>

上面的代码没有任何结果!

【问题讨论】:

  • 通常要重置密码,用户必须输入要重置的帐户的电子邮件地址。这不是你正在做的方法吗?您不希望人们能够重置其他用户帐户。
  • 是的,我的重置密码链接要求您输入电子邮件地址,它几乎是标准的 device/passwords/new.html.erb 格式以匹配我的网站设计
  • 这就是你所做的一切。无需向用户(或潜在的入侵者)提供更多信息。共享帐户通常不受欢迎,但如果他们这样做,那么您的责任就到此为止。您无需更改任何内容,就像用户决定与他们的助手共享帐户并且助手更改了某些内容一样,这不是您的问题。
  • 这不是我担心的责任,我只是想阻止 IRATE 电话。这种带有年轻助手的“年长不精通的经纪人”场景在我的世界中相当普遍。

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


【解决方案1】:

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

【讨论】:

  • 相信我,当我第一次发现共享帐户的做法时,我非常努力地劝阻用户。没有运气,他们坚持说。我不得不让我们的律师在我们的合同中添加一些措辞,特别是对我们的做法进行赔偿。我的用户很奇怪,难的是那些有名人为客户服务的人,他们认为这使他们有权享受特殊待遇。
  • 顺便说一句,我如何暴露身份验证数据?我不确定我是否理解评论?
  • 你的头衔。我误解标题了吗?或者更确切地说,您所说的身份验证密钥是什么意思?
  • 是的,只是电子邮件地址,在设计中通常称为身份验证密钥,以防任何人使用设计并使用用户 ID 作为其身份验证密钥而不是电子邮件地址
  • 固定的标题,很混乱,我以为只要添加设计标签就足够了,对不起
猜你喜欢
  • 2019-08-12
  • 2012-03-09
  • 2019-07-13
  • 1970-01-01
  • 2012-01-13
  • 2016-10-13
  • 2018-11-11
  • 2013-07-11
  • 1970-01-01
相关资源
最近更新 更多