mirror of https://gitee.com/stylefeng/guns
【register】增加短信发送功能
parent
155cd8dc4d
commit
bbd9f1855b
8
pom.xml
8
pom.xml
|
@ -96,6 +96,7 @@
|
||||||
<artifactId>office-spring-boot-starter</artifactId>
|
<artifactId>office-spring-boot-starter</artifactId>
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.stylefeng.roses</groupId>
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
<artifactId>log-spring-boot-starter</artifactId>
|
<artifactId>log-spring-boot-starter</artifactId>
|
||||||
|
@ -108,6 +109,12 @@
|
||||||
<version>1.0.0</version>
|
<version>1.0.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
|
<artifactId>sms-spring-boot-starter</artifactId>
|
||||||
|
<version>1.0.0</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cn.stylefeng.roses</groupId>
|
<groupId>cn.stylefeng.roses</groupId>
|
||||||
<artifactId>message-spring-boot-starter</artifactId>
|
<artifactId>message-spring-boot-starter</artifactId>
|
||||||
|
@ -146,7 +153,6 @@
|
||||||
<artifactId>oshi-core</artifactId>
|
<artifactId>oshi-core</artifactId>
|
||||||
<version>${oshi.version}</version>
|
<version>${oshi.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
|
|
@ -156,6 +156,61 @@
|
||||||
.layui-link {
|
.layui-link {
|
||||||
color: #5FB878 !important;
|
color: #5FB878 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.login-captcha-btn {
|
||||||
|
line-height: 44px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: transparent;
|
||||||
|
outline: none;
|
||||||
|
color: #666;
|
||||||
|
padding: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** 获取图形验证码弹窗 */
|
||||||
|
.layer-get-code {
|
||||||
|
padding: 25px 25px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-get-code > p {
|
||||||
|
color: #666;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-get-code > .lay-code-group {
|
||||||
|
position: relative;
|
||||||
|
padding-right: 135px;
|
||||||
|
margin: 15px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-get-code > .lay-code-group > .layui-input {
|
||||||
|
border-radius: 0;
|
||||||
|
height: 46px;
|
||||||
|
line-height: 46px;
|
||||||
|
background-color: transparent;
|
||||||
|
border-color: rgba(111, 121, 122, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-get-code > .lay-code-group > img {
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
height: 46px;
|
||||||
|
width: 120px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
.layer-get-code .layui-btn-fluid {
|
||||||
|
line-height: 50px;
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** //获取图形验证码弹窗 */
|
||||||
|
|
||||||
|
.layui-btn-disabled {
|
||||||
|
cursor: not-allowed !important;
|
||||||
|
color: #999 !important;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -163,28 +218,28 @@
|
||||||
<form class="layui-form">
|
<form class="layui-form">
|
||||||
<h2>用户注册</h2>
|
<h2>用户注册</h2>
|
||||||
<div class="layui-form-item layui-input-icon-group">
|
<div class="layui-form-item layui-input-icon-group">
|
||||||
<i class="layui-icon layui-icon-username"></i>
|
<i class="layui-icon layui-icon-cellphone-fine"></i>
|
||||||
<input class="layui-input" name="username" placeholder="请输入登录账号" autocomplete="off"
|
<input class="layui-input" name="phone" placeholder="请输入手机号" autocomplete="off" lay-verType="tips" lay-verify="phoneX|required" required/>
|
||||||
lay-verType="tips" lay-verify="required" required/>
|
</div>
|
||||||
|
<div class="layui-form-item layui-input-icon-group">
|
||||||
|
<i class="layui-icon layui-icon-email"></i>
|
||||||
|
<input class="layui-input" name="email" placeholder="请输入邮箱账号" autocomplete="off" lay-verType="tips" lay-verify="email|required" required/>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item layui-input-icon-group">
|
<div class="layui-form-item layui-input-icon-group">
|
||||||
<i class="layui-icon layui-icon-password"></i>
|
<i class="layui-icon layui-icon-password"></i>
|
||||||
<input class="layui-input" name="password" placeholder="请输入登录密码" type="password"
|
<input class="layui-input" name="password" placeholder="请输入新的登录密码" type="password" lay-verType="tips" lay-verify="required|psw" required/>
|
||||||
lay-verType="tips" lay-verify="required" required/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item layui-input-icon-group">
|
<div class="layui-form-item layui-input-icon-group">
|
||||||
<i class="layui-icon layui-icon-key"></i>
|
<i class="layui-icon layui-icon-key"></i>
|
||||||
<input class="layui-input" name="password2" placeholder="请再次输入登录密码" type="password"
|
<input class="layui-input" name="password2" placeholder="请再次输入登录密码" type="password" lay-verType="tips" lay-verify="equalTo" lay-equalTo="[name=password]" required/>
|
||||||
lay-verType="tips" lay-verify="equalTo" lay-equalTo="[name=password]" required/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item layui-input-icon-group login-captcha-group">
|
<div class="layui-form-item layui-input-icon-group login-captcha-group">
|
||||||
<i class="layui-icon layui-icon-auz"></i>
|
<i class="layui-icon layui-icon-auz"></i>
|
||||||
<input class="layui-input" name="code" placeholder="请输入验证码" autocomplete="off"
|
<input class="layui-input" name="code" placeholder="请输入验证码" autocomplete="off" lay-verType="tips" lay-verify="required" required/>
|
||||||
lay-verType="tips" lay-verify="required" required/>
|
<button type="button" id="btnGetCode" class="login-captcha login-captcha-btn layui-input">获取验证码</button>
|
||||||
<img class="login-captcha" alt=""/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<a href="/" class="layui-link">返回登录</a>
|
<a href="${ctxPath}/" class="layui-link">返回登录</a>
|
||||||
<a href="${ctxPath}/forget" class="layui-link pull-right">忘记密码</a>
|
<a href="${ctxPath}/forget" class="layui-link pull-right">忘记密码</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="layui-form-item" style="margin-bottom: 20px;">
|
<div class="layui-form-item" style="margin-bottom: 20px;">
|
||||||
|
@ -206,10 +261,13 @@
|
||||||
<script type="text/javascript" src="${ctxPath}/assets/common/libs/layui/layui.js"></script>
|
<script type="text/javascript" src="${ctxPath}/assets/common/libs/layui/layui.js"></script>
|
||||||
<script type="text/javascript" src="${ctxPath}/assets/common/js/common.js?v=318"></script>
|
<script type="text/javascript" src="${ctxPath}/assets/common/js/common.js?v=318"></script>
|
||||||
<script>
|
<script>
|
||||||
layui.use(['layer', 'form', 'formX'], function () {
|
layui.use(['layer', 'form', 'formX', 'HttpRequest','notice'], function () {
|
||||||
var $ = layui.jquery;
|
var $ = layui.jquery;
|
||||||
var layer = layui.layer;
|
var layer = layui.layer;
|
||||||
var form = layui.form;
|
var form = layui.form;
|
||||||
|
var HttpRequest = layui.HttpRequest;
|
||||||
|
var notice=layui.notice;
|
||||||
|
|
||||||
$('.login-wrapper').removeClass('layui-hide');
|
$('.login-wrapper').removeClass('layui-hide');
|
||||||
|
|
||||||
/* 表单提交 */
|
/* 表单提交 */
|
||||||
|
@ -232,11 +290,89 @@
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
/* 图形验证码 */
|
/* 获取验证码 */
|
||||||
var captchaUrl = 'http://shiro.easyweb.vip/assets/captcha';
|
var captchaUrl = Feng.ctxPath + '/kaptcha';
|
||||||
$('img.login-captcha').click(function () {
|
$('#btnGetCode').click(function () {
|
||||||
this.src = captchaUrl + '?t=' + (new Date).getTime();
|
var $btn = $(this);
|
||||||
|
var $inputPhone = $('input[name="phone"]');
|
||||||
|
var phone = $inputPhone.val();
|
||||||
|
if(!phone){
|
||||||
|
layer.tips('请输入手机号', $inputPhone, {tips: [1, '#ff4c4c']});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var phoneReg = /^1[3456789]\d{9}$/;
|
||||||
|
if (!phoneReg.test(phone)) {
|
||||||
|
layer.tips('手机号格式不正确', $inputPhone, {tips: [1, '#ff4c4c']});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//var $inputEmail = $('input[name="email"]');
|
||||||
|
//var email = $inputEmail.val();
|
||||||
|
//if (!email) {
|
||||||
|
// layer.tips('请输入邮箱账号', $inputEmail, {tips: [1, '#ff4c4c']});
|
||||||
|
// return;
|
||||||
|
//}
|
||||||
|
// var emailReg = /^([a-zA-Z]|[0-9])(\w|\-)+\@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
|
||||||
|
// if (!emailReg.test(email)) {
|
||||||
|
// layer.tips('邮箱格式不正确', $inputEmail, {tips: [1, '#ff4c4c']});
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
var layIndex = layer.open({
|
||||||
|
type: 1,
|
||||||
|
title: false,
|
||||||
|
shade: .1,
|
||||||
|
content: [
|
||||||
|
'<div class="layer-get-code">',
|
||||||
|
' <p>验证码将发送到您的手机,输入下方图形验证码点击按钮即可发送:</p>',
|
||||||
|
' <div class="lay-code-group">',
|
||||||
|
' <input id="verCode" name="verCode" placeholder="请输入图形验证码" maxlength="5" class="layui-input"/>',
|
||||||
|
' <img class="login-captcha" />',
|
||||||
|
' <input id="verKey" name="verKey" type="hidden"/>',
|
||||||
|
' </div>',
|
||||||
|
' <div><button class="layui-btn layui-btn-fluid">立即发送</button></div>',
|
||||||
|
'</div>'
|
||||||
|
].join(''),
|
||||||
|
success: function () {
|
||||||
|
// 图形验证码
|
||||||
|
$('.layer-get-code>.lay-code-group>img').click(function () {
|
||||||
|
getKaptcha();
|
||||||
}).trigger('click');
|
}).trigger('click');
|
||||||
|
// 立即发送
|
||||||
|
$('.layer-get-code .layui-btn-fluid').click(function () {
|
||||||
|
var $input = $('.layer-get-code>.lay-code-group>input');
|
||||||
|
var code = $input.val();
|
||||||
|
if (!code) {
|
||||||
|
layer.tips('请输入图形验证码', $input, {tips: [3, '#ff4c4c']});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
layer.close(layIndex);
|
||||||
|
|
||||||
|
var loadIndex = layer.msg('请求中...', {icon: 16, shade: 0.01, time: false});
|
||||||
|
var request = new HttpRequest(Feng.ctxPath + "/sms/sendLoginMessage", 'post', function (data) {
|
||||||
|
layui.formX.startTimer($btn, 60);
|
||||||
|
notice.msg('发送成功', {icon: 1});
|
||||||
|
layer.close(layIndex);
|
||||||
|
},function (data) {
|
||||||
|
notice.msg(data.message, {icon: 2});
|
||||||
|
});
|
||||||
|
request.set("templateCode","SMS_187746216");
|
||||||
|
request.set("phoneNumber",phone);
|
||||||
|
request.set("verKey",$("#verKey").val());
|
||||||
|
request.set("verCode",$("#verCode").val());
|
||||||
|
request.start(true);
|
||||||
|
layer.close(loadIndex);
|
||||||
|
});
|
||||||
|
}, end: function () {
|
||||||
|
layer.closeAll('tips');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
// 获取验证码
|
||||||
|
function getKaptcha(){
|
||||||
|
var request = new HttpRequest(Feng.ctxPath + '/kaptcha'+ '?t=' + (new Date).getTime(), 'get');
|
||||||
|
var result = request.start();
|
||||||
|
$("#verKey").val(result.data.verKey)
|
||||||
|
$('.layer-get-code>.lay-code-group>img').attr('src', result.data.verImage);
|
||||||
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue