在之前或之后验证会员资格?

这个过程就像这样。

  • 如果登录失败5x,则需要重置密码并发送到密码重置页面。
  • 用户输入邮箱地址
  • 链接发送到提供的电子邮件地址。 记录令牌,电子邮件和时间。
  • 回到网站,如果令牌有效,将检查数据库以查找电子邮件地址是否为实际成员。
  • 如果他们是会员,那么密码重置将继续,否则他们将处于死胡同。
  • 但在得到这个书面后,我想知道是否应该在发送电子邮件之前检查电子邮件地址是否与实际会员帐户相关联。

    所以这是我的问题,我应该验证之前还是之后,还是刚刚返回到站点后足够? 启示?


  • 用户多次提交不正确的登录数据 ...
  • 不要做出假设

    应该做假设,如果password是错误的或者是实际的username -无论是你应通知有关确切的错误用户(出于安全原因,不要。)。

    让用户弄清楚:

    用户名或密码不正确。
    需要帮忙?
    我忘记了我的用户名我忘记了密码

  • 如果其中一个被点击(弹出此:)
  • 您的电子邮件: _________________给我一个[密码/用户名]重置链接

  • 检查数据库,如果提交的电子邮件实际存在!
    (甚至不要考虑将重置链接发送到不在注册表中的电子邮件!)
  • 电子邮件存在 在该账户的数据库中创建一个重置记录,并将重置链接发送到用户的电子邮件。
  • 电子邮件不存在 ? 谁在乎! 出于安全原因,您应该显示相同的成功消息! (你不想让恶意用户玩猜谜游戏?在你之前。)
  • 您应该很快收到一封电子邮件,其中包含重置链接至[theEnteredEmail]
    没有得到任何重置电子邮件? 重发

    (可选)此时不要锁定帐户 。 保持可访问性。 如果你有一个活动重置记录,如果用户使用“旧”数据成功访问它的配置文件,你可能想删除它。 用户可能会感到疲倦或者有点老,他可能会记住他的账户数据 - 可能不想重置任何东西,并且可能想忽略Reset-Link电子邮件。

    失败的密码尝试

    宽限期只有当您注意到大量的连续失败尝试时才锁定/保护帐户 。 创建该特定案例的数据库日志。
    如果username 存在于您的数据库中,但密码不正确 →请将离散通知发送至相应的用户档案电子邮件, 其中包含您从日志中收集的所有数据

    [user] ,我们注册[n] [user][day/time] [n]失败登录尝试登录您的帐户:
    [logFile]
    (n严重性=高) 我们已锁定/锁定您的帐户。 请按照此链接解锁您的个人资料。 [unlockProfileLink]
    (n严重性=低) 为了使您的帐户更安全,请使用强密码 (在此您可以建议一个其他密码链接)


    用户真的很老,

    打开他的电子邮件并遵循重置链接

  • 检查引用重置链接对该帐户是否仍然有效。
  • 有效? 创建一个临时会话
  • (您应该能够从引用URL链接中识别出与帐户的“已打开”到期重置记录令牌关联的用户帐户)

    你好[user]
    您的新[用户名/密码]: _____________
    重复[用户名/密码]: _____________ UPDATE [用户名/密码]

  • 提交时检查临时会话或令牌是否未过期,并且两个字段都匹配
  • 如果引用者匹配与帐户关联的临时重置记录(令牌) - 更改密码/或/用户名

  • 成功? 用户仍然必须从登录页面正确登录!

  • 您的[username/password]现在已更新。 您将很快收到一封确认电子邮件。

    登入
    用户名: _________
    密码: _________登录

  • 成功? 验证登录会话
  • 失败? 从上面重复:)

  • 编辑:如果您不充当电子邮件帐户提供者:

    在发送电子邮件之前,您应该确定检查电子邮件地址是否有效。 您发送的令牌也应始终与实际帐户相关联。 否则,可以更改您希望的任何帐户的密码。 所以我的建议是:

  • 用户输入邮箱地址
  • 后端检查该电子邮件地址是否存在(用户在创建帐户期间告诉您的)。 如果是,则生成一个令牌并将该令牌与该帐户相关联。 如果没有,死胡同。
  • 将令牌发送到电子邮件地址。 用户可以点击它,验证他是该电子邮件地址(以及该帐户的所有者)并且能够更改其密码。
  • 如果您充当电子邮件账户提供商,则您可以在他注册账户时将令牌发送给用户告诉您的第二个电子邮件地址。 更好的解决方案是通过短信或邮件向他发送令牌。

    链接地址: http://www.djcxy.com/p/92685.html

    上一篇: validate membership before or after?

    下一篇: Validate email local component