[小戴]群辉NAS系统使用SSO快捷登录的方法

废话

      对于NAS系统,自己用极路由里面的插件搭建了一个,不怎么专业,不过对于自己日常工作和玩耍还是够的。最近以前的一个同事问我有没有研究过群辉的NAS,能不能帮他们实现第三方系统的快捷登录。这个还是挺好玩的,于是就要来测试机ip,账号和密码开始捣腾了。


准备工作


      搭建好环境的群辉NAS 1台

      群辉SSO接口说明文档一份


实现


  1.      打开SSO服务器

  2. 1.png

  3. 2.png

  4.   根据说明文档编写HTML代码

  5. <!DOCTYPE html>
    <html>
    
    	<head>
    		<title></title>
    		<meta charset="UTF-8" />
    		<script src="test.js" type="text/javascript" charset="utf-8"></script>
    		<script src="http://192.168.1.170:5000/webman/sso/synoSSO-1.0.0.js"></script>
    		<link rel="stylesheet" type="text/css" href="test.css" />
    		<script language="JavaScript">
    			function test() {
    				SYNOSSO.init({
    					oauthserver_url: 'http://192.168.1.170:5000',
    					app_id: 'f58f632b888381d730299fc18f9c3686',
    					redirect_uri: 'http://www.xiaodaier.com/nsa/relay.html',
    					callback: authCallback
    				});
    			}
    
    			function authCallback2() {
    				SYNOSSO.login();
    			}
    		</script>
    		<script>
    			function setButton(logged) {
    				if(logged) {
    					document.getElementById('button').innerHTML = '<button onclick="SYNOSSO.logout()">Logout</button><a href="http://192.168.1.170:5000/" target="_blank">打开NAS地址</a>';
    
    				} else {
    					document.getElementById('button').innerHTML = '<button onclick="SYNOSSO.login()">Login</button>';
    				}
    			}
    
    			function authCallback(reponse) {
    				console.log(JSON.stringify(reponse));
    				alert(reponse.status);
    				if(reponse.status == 'login') {
    					console.log('logged');
    					setButton(true);
    				} else {
    					console.log('not logged ' + reponse.status);
    					setButton(false);
    				}
    			}
    		</script>
    	</head>
    
    	<body>
    		<h1>NAS单点登录测试</h1>
    
    		<p id='button'>
    		</p>
    		<input type="button" value="授权登录" onclick="test()" />
    	</body>
    
    </html>

效果




Top