单点登陆

1.ajax单点登陆

第三方系统(.NET、.PHP等)与anyreport集成,使用单点登陆共享用户信息,登陆AnyReport平台,可在第三方系统登陆页面加入ajax登陆anyreport代码,如OA、ERP登陆页面

ajax异步登陆
ajax跨域单点登陆,ajax异步登陆验证可以获取返回信息,并对返回值进行处理
返回值: 0=成功, 其它=失败

  1. <head>
  2. <script type="text/javascript" src="jquery-1.11.3.min.js"></script>
  3. <script type="text/javascript" src="md5.min.js"></script>
  4. </head>
  5. <body>
  6. <div>
  7. <input id="userName" type="userName" style="width:200px;"><br/>
  8. <input id="password" type="password" style="width:200px;"><br/>
  9. <input type="button" style="test" onclick="doLogin()">
  10. </div>
  11. <iframe id="rptframe" width="80%" height="100%" style="margin-left:180px;"></iframe>
  12. <script type="text/javascript">
  13. function doRptLogin() {
  14. var userName = $("#userName").val();
  15. //密码为前台js加密之后密码,更加安全, 平台采用md5加密方法
  16. var password = $("#password").val();
  17. $.ajax({
  18. url: "http://localhost:9905/dmp/index/sso.htm",
  19. data:{userName:userName, password:md5(password), accessAll:true},
  20. dataType: "jsonp",
  21. jsonp: "callback",
  22. success: function(code){
  23. if(code == 0) {
  24. alert("success");
  25. //success
  26. } else {
  27. //error
  28. }
  29. },
  30. error: function(){
  31. //error
  32. }
  33. });
  34. }
  35. </script>
  36. </body>

用户验证
验证用户信息默认是使用AnyReport用户信息验证, 并支持HTTP方式验证
详细请见:登陆验证

2.ajax退出登陆

第三方系统用户退出的时候,同时anyreport系统也需要做用户session清除

ajax异步退出
异步退出报表系统登陆,访问地址:/index/sso/logout.htm

  1. function doLogout() {
  2. $.ajax({
  3. url: "http://192.168.0.101:9905/dmp/index/sso/logout.htm",
  4. dataType: "jsonp"
  5. });
  6. }

3.跨域单点登陆

跨域单点登录是指两个系统域名或ip地址完全不相同之间的单点登录,即AnyReport系统与第三方系统部署的域名或IP地址不一样,第三方系统登录同时访问AnyReport系统做登录

获取用户认证凭据ticket
第三方系统根据用户名与密码(MD5加密之后的密码)访问AnyReport接口获取ticket, dmp为项目名称,如果没有项目名去除
接口URL:http://localhost:9905/dmp/index/ssoc.htm?userName=xx&password=xx

通过ajax 调用接口获取ticket

  1. ```javascript
  2. $.ajax({
  3. url: "http://localhost:9905/dmp/index/ssoc.htm",
  4. data:{userName:"demo", password:md5(xx)},
  5. dataType: "jsonp",
  6. jsonp: "callback",
  7. success: function(ticket){
  8. if(ticket="error") {
  9. //error
  10. } else {
  11. }
  12. },
  13. error: function(){
  14. //error
  15. }
  16. });```
通过ajax异步跨域方式访问接口,返回ticket,如果ticket=error,表示登录失败,其它则为成功

通过Restful调用接口获取ticket
第三方系统后台程序通过httpclient或是restful 调用接口获取ticket,如果ticket=error,表示登录失败,其它则为成功
接口URL:http://localhost:9905/dmp/index/ssoc.htm?userName=demo&password=xx

通过获取的ticket访问AnyReport系统
将调用接口获取的ticket,作为访问AnyReport系统主页的URL参数,访问AnyReport系统主页URL:http://localhost:9905/dmp/index/page.htm?ticket=xx