新浪通行证实现方案

   新浪的通行证和Sohu的相比稚嫩了很多,因为所有的成员网站都在同一个域中,因此在通行证中写了cookie后在所有的成员网站就实现了cookie共享。搜狐因为集成了其他的非同域的网站(如chinaren),若是按照新浪的这种实现方式是肯定不行的,因此他们采用了p3p去跨域写cookie.
   网民在新浪的通行证登录后,会在浏览器写一个cookie,当漫游到其他的网站时,读取该cookie的信息。
  
<script language="javascript">
if (getCookie("SE") == "") {
	print_stand_unipro_head();

} else {

	print_stand_unipro_welcome();

}
</script>
function print_stand_unipro_head()
{
	
	document.write("<table height=17 cellSpacing=0 cellPadding=0 border=0><tr>");
    document.write("<td align=right><a href=# onclick='return getUniproUrl_stand()'>通行证登录</a>&nbsp;</td>");
    document.write("</tr></table>");
}

function print_stand_unipro_welcome()
{
	var unipro_login_nickname = getCookie( "SU" );
	var unipro_login_pos = unipro_login_nickname.split(":");
	
	if ( unipro_login_pos.length > 1 ){
		unipro_login_nickname = decodeURI(unipro_login_pos[3]);
	}
	
	if ( unipro_login_nickname!="" && unipro_login_nickname!="null" && unipro_login_nickname!=null && unipro_login_nickname!="undefined" ) {
                  if (unipro_login_nickname.length > 6)
		{
			unipro_login_nickname = unipro_login_nickname.substr2(0,6);
			unipro_login_nickname += "..";
		}
		document.write("<table height=17 cellSpacing=0 cellPadding=0 border=0><tr>");
		document.write("<td align=right>&nbsp;"+unipro_login_nickname+"</td><td>&nbsp;<a href=# onClick='return getUniproUrl_welcome()'>退出</a>&nbsp;</td>");
		document.write("</tr></table>");
	} else {
		document.write("<table height=17 cellSpacing=0 cellPadding=0 border=0><tr>");
		document.write("<td align=right>&nbsp;新浪过客" +"</td><td>&nbsp;<a href=# onClick='return getUniproUrl_welcome()'>退出</a>&nbsp;</td>");
		document.write("</tr></table>");
	}
}
</script>

如果cookie存在就显示cookie中的用户信息,如果不存在就显示一个登录按钮.

你可能感兴趣的:(浏览器)