Raycom框架默认支持form表单提交方式登陆,同时为支持手机等提供了ajax的登陆验证方式实现方式如下:
1:页面提交时用ajax提交登录,访问地址:${ctx}/login
ajax参数包括:
{ mobileLogin:true,
username:lake,
password:1234567,
validateCode:n9ax}
说明:mobileLogin:true是默认值,其余三个根据输入提供
提交方式:post
2:根据ajax返回值,如果存在message,则是验证失败,否则则是验证通过。
登录失败情况下,如果是验证码输入有误,则在验证码输入框上进行提示,否则在用户名输入框进行提示。
登录失败后,需要刷新验证码。
常见message错误有:
n 验证码错误, 请重试.
n 该用户名不存在,请确认.
n 该帐号已禁止登录.
n 用户或密码错误, 请重试.
3:其他可能用到的变更项:
3-1:登陆验证码开启
a)需要在raycom.properties文件中修改配置项user.loginValidateNum的值,其值为0时表示必须输入验证码
b)在页面中加入验证码相关的代码
<img style="height: 100%;width: 100%" class="validateCode" alt="点击更换" title="点击更换"
src="${pageContext.request.contextPath}/servlet/validateCodeServlet"
onclick="$('.validateCode').attr('src','${pageContext.request.contextPath}/servlet/validateCodeServlet?'+new Date().getTime());"
c)如果是失败几次以后才出现验证码,可以通过控制上述代码段的显隐来实现。
3-2:修改登陆页面和登陆成功后的首页
a)需要在raycom.properties文件中修改下列配置项的值:
#登陆页面地址
loginPage=front/index
#登陆成功后返回的页面
mainPage=front/index
4:常见登录返回信息:
登录失败:
{"username":"1","rememberMe":false,"mobileLogin":true,"shiroLoginFailure":"org.apache.shiro.authc.AuthenticationException","message":"验证码错误, 请重试.","isValidateCodeLogin":true}
登录成功:
{"id":"10000001","loginName":"admin","name":"系统管理员","mobileLogin":true,"role":[{"id":"10000001","name":"系统管理员","enname":"admin","roleType":"admin","sysData":"Y","useable":"Y","menuList":[],"permissions":[],"menuIdList":[],"menuIds":""}],"sessionid":"fd81f81eb20940a4810c43d90bd111d9"}
最后于 2019-1-10
被lake编辑
,原因: