首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用邀请进行用户注册

使用邀请进行用户注册
EN

Stack Overflow用户
提问于 2010-09-12 20:22:40
回答 2查看 3.9K关注 0票数 2

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

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

我在想,是不是另一种做法更好,比如只存储用户的电子邮件,避免发送邀请码。

另外,使用邀请码,有必要加密它们吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-12 20:31:55

邀请码可能是最好的,因为它用于验证电子邮件地址,这意味着当用户注册时,需要执行的步骤减少了一步。通常,你必须通过电子邮件向用户发送一个密码,以检查电子邮件地址是否真实-好吧,你已经做到了!

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

至于加密,我不会费心的--如果你的数据库被黑客入侵,代码被盗,制作新的代码并再次发送出去是很容易的。

票数 1
EN

Stack Overflow用户

发布于 2010-09-12 20:31:49

可以,您可以将电子邮件地址的散列与链接一起发送:

代码语言:javascript
复制
 $email = 'foo@bar';
 $check = md5('SECRET' . $email);
 $link = "register?email=$enail&check=$check"

在"register“页面上,再次计算散列,并与链接中的散列进行比较:

代码语言:javascript
复制
 $email = $_GET['email'];
 $check = md5('SECRET' . $email);
 if($check !== $_GET['check'])
    die("wrong link!");

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

代码语言:javascript
复制
 $salt = get_salt_from_config_file();
 $check = md5($salt . $email);
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3694798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档