收到请求后如何将域名映射到用户ID?
显然,您必须将该信息存储在某个地方,很可能存储在数据库中。
添加
domains
具有列的数据库表:- 顾客ID
- 名称
- 有效(1或NULL)
- 挑战
为(名称,活动)添加唯一键,以确保域名仅被映射一次。
- 当客户尝试添加域时,添加具有active = NULL的行并将质询设置为随机字符串。
向客户显示随机字符串,并要求他们在网站上放一个网页,或用它创建一个虚拟DNS记录以验证域所有权(这是Google Apps的工作方式)。
您可以通过向管理联系人发送电子邮件或其他方式来验证所有权。
- 当客户说他做了您在步骤2中指示他们执行的操作时,请进行验证并将其设置为active = 1,challenge = NULL。
如果该域以前对其他客户是活动的,则删除这些记录或将active设置为= 0。
要求客户为其域添加CNAME记录,然后将其转发到您的域,例如
hosted.myservice.com
(Googleghs.google.com
用于Google Apps)。收到请求后,执行
SELECt customerId FROM domains WHERe name=:requestDomain AND active=1
一个更好的办法可能是自动您的客户提供一个域的格式
<customername>.myservice.com, 除了 自定义域。这给您带来两个好处:
不想使用自己的域的客户仍然可以自定义登录页面,例如使用公司徽标。
对于自定义域,您可以要求客户将其转发给,
<customername>.myservice.com
而不是将其转发给hosted.myservice.com
。
这使您可以在多个服务器之间水平划分客户,而不必要求客户在端部进行任何更改。例如,您可以给客户一个选项,以选择他们想要将帐户托管在欧盟还是美国。当他们更改数据时,只需传输数据并更新即可
<customername>.myservice.com。他们的自定义域将自动运行。
为此,您必须为其设置通配符DNS记录
*.myservice.com(除非您还需要后者的功能,在这种情况下,您将必须管理单个记录)。



