【问题标题】:How to include user's username and password to a password recovery mail in symfony 1.4? [closed]如何在 symfony 1.4 的密码恢复邮件中包含用户的用户名和密码? [关闭]
【发布时间】:2012-08-06 07:03:33
【问题描述】:

我想在我的用户登录模块中添加“忘记密码”功能,因为我已经创建了密码恢复操作,当用户输入电子邮件系统时,将检查邮件是否存在,如果存在,它将发送邮件给用户。我想知道的是如何在该邮件中包含用户当前的密码和用户名。

我该怎么做?

【问题讨论】:

  • 上帝,拜托,不要在您想发送给客户的任何邮件中添加任何密码。
  • 是的。那么在 symfony 中我还有哪些其他选择呢???
  • 就像我在您的other question 中所说的:查看 sfGuardForgotPassword。您将看到它发送带有(安全且唯一)链接的电子邮件。此链接邀请客户创建新密码。这就是你所要做的。
  • @j0k 我同意并理解,请删除此问题,并请允许我从 stackoverflow 提问。谢谢!
  • @Wouter J:我同意并理解,请删除此问题,并请允许我从 stackoverflow 提问。谢谢!

标签: email login symfony1 passwords recovery


【解决方案1】:

你永远不会这样做,永远永远,你发送一个密码恢复哈希,并添加一个令牌到你的数据库,然后通过电子邮件将哈希发送给丢失密码的用户。不要明文存储密码,这会违反客户端密码安全性,并且如果您的数据库受到威胁,它将向您的整个用户群释放用户名和密码组合。

将密码存储为:

   DB.userTable.setTupple(username,sha1(username+"optionaldelimiter"+password));

检索密码为:

resetPasswd(username : string, hash : string, newPasswd: string)
{
tup = DB.recoveryTable.fetchTupple(username,hash);
  if( tup != null && tup.expiresAt <= Date.now())
  {
  DB.setPasswd(username,newPasswd);
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-21
    • 2022-07-18
    • 2015-07-25
    • 1970-01-01
    • 2018-04-13
    相关资源
    最近更新 更多