2

我正在开发一个应用程序,用户可以在收到应用程序的电子邮件邀请时注册。现在我要做的是生成发送给用户并存储在数据库中的邀请码。然后用户转到包含邀请码的电子邮件中给出的 url,如下所示:

http://myapp.com/user/register/56jk4564k6567kj686kjh56

如果其他方法更好,我正在徘徊,比如只存储用户的电子邮件并避免发送邀请码。

另外,使用邀请码,是否需要加密?

4

2 回答 2

1

邀请码可能是最好的,因为它用于验证电子邮件地址,这意味着用户注册时需要采取的步骤更少。通常,您必须通过电子邮件向用户发送密码以检查电子邮件地址是否真实 - 好吧,您刚刚完成了!

一个考虑因素是,如果用户在一个地址收到邀请,然后实际上想要使用不同的电子邮件地址进行注册,会发生什么?也许他们有不止 1 个并且想要使用不同的?(例如工作与个人)您需要验证此人是否相同的代码。

至于加密,我不会打扰 - 如果您的数据库被黑客入侵并且代码被盗,那么制作新的并再次发送它们很容易。

于 2010-09-12T12:31:54.913 回答
-3

是的,您可以发送电子邮件地址的哈希值以及链接:

 $email = 'foo@bar';
 $check = md5('SECRET' . $email);
 $link = "register?email=$enail&check=$check"

在“注册”页面上,再次计算哈希值并与链接中的哈希值进行比较:

 $email = $_GET['email'];
 $check = md5('SECRET' . $email);
 if($check !== $_GET['check'])
    die("wrong link!");

upd:这只是一个例子,在现实生活中你应该将盐存储在主代码之外:

 $salt = get_salt_from_config_file();
 $check = md5($salt . $email);
于 2010-09-12T12:31:48.560 回答