在 PHP 中通过电子邮件验证用户
我实际上正在使用 PHP 创建一个 Web 应用程序并寻求验证用户的帮助。 与某些网站一样,当您注册时,系统会向您发送一封包含确认链接的电子邮件。我如何在 PHP 中实现它? 我所知道的是我必须使用 PHP mail()
函数来发送电子邮件。 请帮忙。必要的。谢谢。 :)
I'm actually creating a web application using PHP and seek help verifying a user.
As with certain websites, when you register, an e-mail is sent to you with a confirmation link. How do I implement that in PHP?
All I know is that I have to use the PHP mail()
function to send the e-mail.
Please help. Necessary. Thanks. :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
帕特里克的回答是正确的,尽管我想指出还有其他可能性!
您不必在数据库中创建和存储唯一的令牌。这是只需要一次的数据开销。
您还可以利用单向散列。
例如,向用户发送代码
md5('my-secret-application-token'.$user_email_adress)
。您可以以同样的方式验证这一点,但不需要存储密码。
Patricks answer is correct altough i want to point out that there are other possibilities!
You don't necessarily have to create and store a unique token in your database. This is data overhead that is only needed once.
You could also take advantage of one-way hashing.
For example send the user the code
md5('my-secret-application-token'.$user_email_adress)
.You can validate that just the same way but dont need to store a secret code.
这是一个非常广泛的问题,因此我们只能给出一个广泛的答案,但这样做的一般技术是
This is a very broad question, so we can only give a broad answer, but the general technique to do so is
就像使用 CSRF 保护一样,您会生成一个唯一的令牌。
您将该值存储在该电子邮件的会话中,并且当用户单击电子邮件中的链接时(您通过 query-string) 您比较两个值。
为了使其更安全,您可以像 CSRF 一样添加时间限制。
just like with CSRF protection you generate an unique token.
You store that value in your session for that email and when the user clicks link in email(you pass token via the query-string) you compare the two values.
To make it more secure you could just as with CSRF add a time-limit.