后台技术:spring boot+Shiro+mysql
pom.xml
<dependency>
<groupId>myQrCode</groupId>
<artifactId>myQrCode</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/lib/Qrcode.jar</systemPath>
</dependency>
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.10</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>com.baidu.aip</groupId>
<artifactId>java-sdk</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.40</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--视图引擎thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
Shiro配置
@Bean("sessionManager")
public SessionManager sessionManager(){
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
sessionManager.setSessionValidationSchedulerEnabled(true);
sessionManager.setSessionIdCookieEnabled(true);
return sessionManager;
}
@Bean("securityManager")
public SecurityManager securityManager(OAuth2Realm oAuth2Realm, SessionManager sessionManager) {
DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
securityManager.setRealm(oAuth2Realm);
securityManager.setSessionManager(sessionManager);
return securityManager;
}
前端VUE
<body class="login">
<div class="title" style="top:10%;"><img th:src="@{/web/images/head.png?v=bl1}" height="100px" width="100px"/></div>
<div class="fields" style="top:18%;">
<form id="dataForm" name="login_form">
<div class="name">
<input type="text" id="username" name="username" placeholder="真实姓名">
</div>
<div class="pwd">
<input type="password" id="password" name="password" placeholder="密码">
</div>
<div class="code">
<input type="text" name="code" id="code" placeholder="验证码">
<span class="messCode_but ">
<img id="secimg" src="/ws/akcode.jpg?" width="80" height="35" alt="" title="看不清楚,换一张" onclick="javascript:createCode();" >
</span>
</div>
<div class="chb__w">
<input id="ck_rmbUser" type="checkbox"><label for="ck_rmbUser">记住密码</label>
</div>
<button id="loginBtn" class="btn">登录</button>
<div class="" style="float:right;">
<a th:href="@{/ws/register}">如还没有开户,点击免费开户</a>
</div>
</form>
</div>
<script language="javascript">
function createCode() {
$("#secimg").attr("src", "/code.jpg?" + new Date().getTime());
}
$(function() {
// cookie获取用户名
if ($.cookie("rmbUser") == "true") {
$("#ck_rmbUser").prop("checked", true);
$("#username").val($.cookie("username"));
$("#password").val($.cookie("password"));
}
var validateRules = {
'username': {
required: true
},
'password': {
required: true
},
'code': {
required: true
}
};
var dataForm = $("#dataForm");
dataForm.validate({
ignore: ':hidden',
focusInvalid: true,
rules: validateRules
});
/**
* 记住用户名
* @return {[type]} [description]
*/
function save() {
if ($("#ck_rmbUser").prop("checked")) {
var username = $("#username").val();
var password = $("#password").val();
$.cookie("rmbUser", "true", {
expires: 7
}); //存储一个带7天期限的cookie
$.cookie("username", username, {
expires: 7
});
$.cookie("password", password, {
expires: 7
});
} else {
$.cookie("rmbUser", "false", {
expire: -1
});
$.cookie("username", "", {
expires: -1
});
$.cookie("password", "", {
expires: -1
});
}
};
$('#loginBtn').click(function(event) {
event.preventDefault();
if (!dataForm.valid()) {
return false;
}
var url = "/ws/doLogin";
var usernameVal = $('#username').val();
var passwordVal = $('#password').val();
var codeVal = $('#code').val();
$.post(url, {
"username": usernameVal,
"password": passwordVal,
"code": codeVal
}, function(result) {
if (result.rs) {
// 记住用户名
save();
// 提示后跳转
openPop(result.msg, true, "/index?notice=1");
} else {
openPop(result.msg);
$('#secimg').trigger('click');
$('#loginBtn').removeAttr('disabled');
}
},"json");
});
});
</script>
源码地址:百度网盘 请输入提取码
提取码:d59t