<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=gb2312"/> <title>Sina Visitor System</title> </head> <body> <span id="message"></span> <script type="text/javascript" src="/js/visitor/mini.js"></script> <script type="text/javascript"> var url = url || {}; (function () { this.l = function (u, c) { try { var s = document.createElement("script"); s.type = "text/javascript"; s[document.all ? "onreadystatechange" : "onload"] = function () { if (document.all && this.readyState != "loaded" && this.readyState != "complete") { return } this[document.all ? "onreadystatechange" : "onload"] = null; this.parentNode.removeChild(this); if (c) { c() } }; s.src = u; document.getElementsByTagName("head")[0].appendChild(s) } catch (e) { } }; }).call(url); // 流程入口 wload(function () { try { if (!Store.CookieHelper.get('SRF')) { // 尝试从cookie获取用户身份,获取失败走创建访客流程 tid.get(function (tid, where, confidence) { incarnate(tid, where, confidence); }); } else { // 用户身份存在,尝试恢复用户身份 restore(); } } catch (e) { // 出错 error_back(); } }); // 跳转回初始页面 var return_back = function (response) { if (response['retcode'] == 20000000) { var url = "http://weibo.com/"; if (url != "none") { window.location.href = url; } } else { // 出错 error_back(response['msg']); } }; // 向新浪域发送请求,为新浪域种下访客 cookie var cross_domain = function (response) { var from = "weibo"; if (response['retcode'] == 20000000) { var cross_domain_intr = "http://login.sina.com.cn/visitor/visitor?a=crossdomain&cb=return_back&s=" + encodeURIComponent(response['data']['sub']) + "&sp=" + encodeURIComponent(response['data']['subp']) + "&from=" + from + "&_rand=" + Math.random(); url.l(cross_domain_intr); } else { // 出错 error_back(response['msg']); } }; // 为用户赋予访客 cookie var incarnate = function (tid, where, conficence) { var gen_conf = ""; var from = "weibo"; var incarnate_intr = "http://passport.weibo.com/visitor/visitor?a=incarnate&t=" + encodeURIComponent(tid) + "&w=" + encodeURIComponent(where) + "&c=" + encodeURIComponent(conficence) + "&gc=" + encodeURIComponent(gen_conf) + "&cb=cross_domain&from=" + from + "&_rand=" + Math.random(); url.l(incarnate_intr); }; // 恢复用户在weibo域下的cookie var restore = function () { var from = "weibo"; var restore_intr = "http://passport.weibo.com/visitor/visitor?a=restore&cb=restore_back&from=" + from + "&_rand=" + Math.random(); url.l(restore_intr); }; var restore_back = function (response) { // 身份恢复成功走广播流程,否则走创建访客流程 if (response['retcode'] == 20000000) { var url = "http://weibo.com/"; var alt = response['data']['alt']; var savestate = response['data']['savestate']; if (alt != '' && url != "none") { var params = 'entry=sso&alt=' + alt + '&returntype=META&url=' + url + '&gateway=1&savestate=' + savestate; window.location.href = 'http://login.sina.com.cn/sso/login.php?' + params; } else { cross_domain(response); } } else { tid.get(function (tid, where, confidence) { incarnate(tid, where, confidence); }); } }; // 出错情况返回原页面 var error_back = function (msg) { var url = "http://weibo.com/"; if (url != "none") { if (url.indexOf('ssovie4c55=0') === -1) { url += (((url.indexOf('?') === -1) ? '?' : '&') + 'ssovie4c55=0'); } window.location.href = 'http://weibo.com/login.php'; } else { document.getElementById('message').innerHTML = 'Error occurred' + (msg ? (': ' + msg) : ''); } } </script> </body> </html>