打酱油 发表于 2014-8-10 16:52:14

hotspot模板制作教程【2】

第二弹。。。继续

<!--
【e5Blbko】节点login.html文件
请直接替换ROS hotspot默认的login.html
有问题请联系QQ:576673403
//-->
<!DOCTYPE>
<html>
<head>
<title>login</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="expires" content="-1" />
</head>


<body>
<!-- $(if chap-id) //-->
<!--
chap是默认开启的。如果同时开启chap和pap,chap是默认优先的。
//-->
      <script type="text/javascript" src="/md5.js"></script>
      <!-- 首先加载md5.js //-->
      <script type="text/javascript">
      var $_GET = (function(){
                var url = window.document.location.href.toString();
                var u = url.split("?");
                if(typeof(u) == "string"){
                        u = u.split("&");
                        var get = {};
                        for(var i in u){
                              var j = u.split("=");
                              get] = j;
                        }
                        return get;
                } else {
                        return {};
                }
      })();
      //以上代码,把URL的参数分割,写成$_GET['xxx']这种类型,php情节。。。伤不起啊。
      window.onload =function(){
                if($_GET["chaplogin"]=="true"){
                //这里判断是否是返回的,如果是从认证平台返回则,提交参数给ros。注意看密码区域
                        location.href="$(link-login-only)?username=" + $_GET["username"] + "&password="+ hexMD5("$(chap-id)" + $_GET["password"] + "$(chap-challenge)") +"&dst=" + $_GET["dst"];
                }else{
                //非平台返回,则跳转到平台去。带各种参数出去。
                        location.href="http://ooo2b.com/open.php?node=e5Blbko&chap=true&login=$(link-login-only)&dst=$(link-orig)&mac=$(mac)";
                };
      }
      </script>
<!-- $(else) //-->
<!--
如果chap没有勾选,则pap认证开始
//-->
      <script type="text/javascript">
      var $_GET = (function(){
                var url = window.document.location.href.toString();
                var u = url.split("?");
                if(typeof(u) == "string"){
                        u = u.split("&");
                        var get = {};
                        for(var i in u){
                              var j = u.split("=");
                              get] = j;
                        }
                        return get;
                } else {
                        return {};
                }
      })();
      //同上
      window.onload =function(){
                if($_GET["chaplogin"]=="false"){
                //同上
                        location.href="$(link-login-only)?username=" + $_GET["username"] + "&password="+$_GET["password"] +"&dst=" + $_GET["dst"];
                }else{
                //同上
                        location.href="http://ooo2b.com/open.php?node=e5Blbko&chap=false&login=$(link-login-only)&dst=$(link-orig)&mac=$(mac)";
                };
      }
      </script>
<!-- $(endif) //-->
<!--
pap结束get参数chaplogin,最为重要,这是从平台返回
//-->
</body>
</html>

具体讲解部分内容:
$_GET["chaplogin"]=="false" 或者 ”true“ 这里是判断是否是平台返回和认证验证方式。true真则chap,false则假,pap验证。


hexMD5("$(chap-id)" + $_GET["password"] + "$(chap-challenge)"),这里是密码区域,一看就知道了。。。


跳转到平台的参数解析,node=e5Blbko&chap=false&login=$(link-login-only)&dst=$(link-orig)&mac=$(mac),其中chap也是真假传递。。。其他参数看平台需要传递


以上栗子是roswifi.com ROS第三方认证平台的login实例代码,已经应用在实际生产环境!
通过此login.html平台可以根据传递出来的参数对应返回。做到chap和pap分开。随便用户配置那种方式。

当然,通过这个栗子可以做很多事。。。自己发挥。


AD:定制模板欢迎PM!
第三方认证交流群:http://jq.qq.com/?_wv=1027&k=SZw5Ot

youshu 发表于 2014-8-12 13:43:32

啦啦啦啦啦,赞赞赞…………

hakkaboy 发表于 2015-7-7 00:41:14

谢谢,非常好,学习了。
页: [1]
查看完整版本: hotspot模板制作教程【2】