<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>寂静的深海 &#187; 流程</title>
	<atom:link href="http://www.deepseath.com/?feed=rss2&#038;tag=%E6%B5%81%E7%A8%8B" rel="self" type="application/rss+xml" />
	<link>http://www.deepseath.com</link>
	<description></description>
	<lastBuildDate>Mon, 29 Jan 2024 09:55:11 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>关于用户邮箱验证的一个思路</title>
		<link>http://www.deepseath.com/?p=770</link>
		<comments>http://www.deepseath.com/?p=770#comments</comments>
		<pubDate>Mon, 06 Sep 2010 16:59:47 +0000</pubDate>
		<dc:creator>Deepseath</dc:creator>
				<category><![CDATA[实验室]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[分享]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[思路]]></category>
		<category><![CDATA[流程]]></category>

		<guid isPermaLink="false">http://www.deepseath.com/?p=770</guid>
		<description><![CDATA[当下很多运营或者应用都会引导用户激活验证注册的Email地址，为了确保获得更可靠的用户（虽然可靠性不是很高），同时也为了避免地址不被滥用，尽力获取更优化的用户资源等等，好处是很多的。 一般在验证流程上都很简单，无非是：根据用户登记的Email发送一个验证邮件，用户收到邮件后，访问一个特定的处理链接，系统接收后，便会确认此人Email通过验证激活。 这个方式简单容易，设计也很方便。 但有一个“问题”，某个用户起初登记了一个A地址，然后通过了验证，过了一阵他又将Email改成了B地址，也通过了验证，可过了一阵又因为某种原因他又将Email改回了A地址，可系统仍旧提示未通过验证，这个挺囧的——当然其实也不是什么大不了的问题，不过个人始终觉得这是一个人性化的考虑。已经通过验证了的邮箱为什么还要再次验证呢？ 近期在一个项目上也有类似的处理，因为基于该异想天开的想法，我特意费时巴拉的用了一个新的机制，虽然没人能够看到，但我相信多多少少会让用户觉得有点人味的^_^ 具体流程其实很简单，无非是增加一个数据表，用来储存经过验证的Email地址，且每个Email对应一个用户id。 当用户通过验证的时候记录下他的id和Email，以及其他信息（比如验证时间等等） 当用户修改Email的时候，先去到这个数据表内查询该记录是否存在（uid和email同时满足），存在了就表面该用户已经通过验证了，不需要再次发送验证邮件。 uid与Email是作为一个唯一性索引键（UNIQUE）存在的。这样可以确保别人冒用这个Email地址的情况也被认为是通过验证的。 也就是说，只有其本人曾经用过的Email地址才会采用跳过验证的机制。 简单说： 用户A曾经验证通过了a、b、c三个Email地址。 那么日后他无论将Email地址修改变换为这三个任意一个的时候，系统都不会提醒他再次去验证。 如果另一个用户B登记了a地址，那么系统还是要提醒他进行验证的，因为数据表记录下验证通过a地址的用户是A而不是B。 以上就是我在项目中关于用户Email地址验证的一个机制（当然实际操作过程中，还要加入一个验证的条件限制等条件，避免用户频繁的请求，关于这部分处理，相信所有的验证机制都会考虑的。），不一定有什么特别重大的作用，不过觉得还是挺有意思的，记录下来分享一下吧。]]></description>
		<wfw:commentRss>http://www.deepseath.com/?feed=rss2&#038;p=770</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
