集成单点登录

1.单点登录

单点登录是一种身份验证机制,允许用户使用一组凭据(例如用户名和密码)登录到一个系统,然后在不需要重新验证的情况下访问其他受信任的系统。单点登录通过一次身份验证,使用户能够无缝访问多个系统,而无需多次输入凭据。

VeryReport支持Ajax请求实现单点登录,通过jsonp解决跨域问题,将用户的登录信息发送到认证系统,并在后台进行验证。验证成功后,用户可以在不同的系统中进行访问,而无需重新输入凭据。这种方法可以提高用户体验,减少了重复登录的步骤,同时也增强了系统的安全性。示例代码如下:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>sso login</title> <script type="text/javascript" src="./jquery.min.js"></script> </head> <body> <div id="login"></div> <input id="username" type="text" value="admin"/> <input id="password" type="password" value="admin123"/> <input type="button" onclick="login()" value="登录"/> <script> function login() { var username = $('#username').val() var password = $('#password').val() $.ajax({ url: 'https://www.veryreport.com//login/sso', data: {username: username, password: password, rememberMe: false}, dataType: 'jsonp', jsonp: 'callback', jsonpCallback: 'ssoCallBack', //指定单点登录回调函数名 error: function () { //handle error } }) } //成功后回到函数 function ssoCallBack(data) { if (data.code == 0) { location.href = 'https://www.veryreport.com/:8088/index' } } </script> </body> </html>

2.退出登录

同样,VeryReport通过Ajax请求实现退出登录单点登录,示例代码如下:

<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>sso logout</title> <script type="text/javascript" src="./jquery.min.js"></script> </head> <body> <div id="login"></div> <input type="button" onclick="logout()" value="退出登录"/> <script> function logout() { $.ajax({ url: 'https://www.veryreport.com/:8088/logout/sso', dataType: 'jsonp', jsonp: 'callback', jsonpCallback: 'ssoCallBack', //指定退出登录回调函数名 error: function () { //handle error } }) } //成功后回到函数 function ssoCallBack(data) { if (data.code == 0) { // do something } } </script> </body> </html>

3.修改session过期时间

打开配置文件,配置文件位于安装目录下\config\application.yml。配置项为shiro.session.expireTime,单位为毫秒,默认为30分钟。