1 define(["jquery", "core"], function($) { 2 3 var LOGIN_COOKIE = "_we_login", 4 COOKIE_VAL = 1, 5 IFRAME_HTML = '<iframe src="' + $we.conf.ENV.__LOGIN_FRAME + '" style="display:none"></iframe>', 6 MCAS_IFRAME_HTML = '<iframe src="' + $we.conf.ENV.__MLOGIN_FRAME + '" style="display:none"></iframe>', 7 /** 8 * frameLogin class 9 */ 10 frameLogin = { 11 bForce: false, 12 set: function() { 13 // 如果已经设置了cookie,并且不是强制调用,那么就直接返回 14 // if ($.cookie(LOGIN_COOKIE) && !this.bForce) return; 15 // 新增一个iframe 16 var ifr = $(IFRAME_HTML).appendTo($("body")); 17 // 设置cookie 18 // $.cookie(LOGIN_COOKIE, COOKIE_VAL); 19 // 当iframe 加载成功之后,触发 success事件 20 ifr.on("load", function() { 21 frameLogin.success(); 22 }); 23 // this.bForce = false; 24 }, 25 success: $we.emptyFunction, 26 fail: $we.emptyFunction 27 }; 28 29 /** 30 * 设置登录 31 * @param {boolean} bForce 是否强制登录 32 * @param {function} success 成功的回调 33 * @param {function} fail 失败的回调 34 */ 35 $we.setLogin = function(bForce, success, fail) { 36 // if (bForce) frameLogin.bForce = true; 37 if (success) frameLogin.success = success; 38 if (fail) frameLogin.fail = fail; 39 // 调用jsonp接口,该接口将会触发 checkstat 方法 40 $we.utils.include($we.conf.ENV.__CAS_STATE_API); 41 // 设置手机账号群的登录态 42 $(MCAS_IFRAME_HTML).appendTo($("body")); 43 }; 44 45 /** 46 * 声明checkstat方法 47 * @param {object} stat 状态 48 */ 49 window.checkstat = function(stat) { 50 // 如果已经登录,调用frameLogin.set 51 if (stat.CAS_LOGIN_STATE == "1") { 52 frameLogin.set(); 53 } else { 54 // 如果尚未登录,直接调用失败 55 frameLogin.fail(); 56 } 57 }; 58 59 // 当自动登录开关打开,在dom ready之后直接调用登录接口 60 if ($we.conf.RUNTIME.__AUTOLOGIN) { 61 $(document).ready(function() { 62 $we.setLogin(); 63 }); 64 } 65 66 return $we.setLogin; 67 68 });