我正在开发一个应用程序,用户可以在收到应用程序的电子邮件邀请时进行注册。现在我要做的就是生成邀请码,然后发送给用户并存储在数据库中。然后,用户转到包含邀请码的电子邮件中给定的url,如下所示:
http://myapp.com/user/register/56jk4564k6567kj686kjh56
我在想,是不是另一种做法更好,比如只存储用户的电子邮件,避免发送邀请码。
另外,使用邀请码,有必要加密它们吗?
发布于 2010-09-12 20:31:55
邀请码可能是最好的,因为它用于验证电子邮件地址,这意味着当用户注册时,需要执行的步骤减少了一步。通常,你必须通过电子邮件向用户发送一个密码,以检查电子邮件地址是否真实-好吧,你已经做到了!
一个考虑因素是,如果用户在一个地址收到邀请,然后实际上想使用不同的电子邮件地址注册,会发生什么?也许他们有多个%1并且想要使用不同的一个?(例如,工作和个人)你需要代码来验证这个人是同一个人。
至于加密,我不会费心的--如果你的数据库被黑客入侵,代码被盗,制作新的代码并再次发送出去是很容易的。
发布于 2010-09-12 20:31:49
可以,您可以将电子邮件地址的散列与链接一起发送:
$email = 'foo@bar';
$check = md5('SECRET' . $email);
$link = "register?email=$enail&check=$check"在"register“页面上,再次计算散列,并与链接中的散列进行比较:
$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);https://stackoverflow.com/questions/3694798
复制相似问题