修改登录页

This commit is contained in:
java_cuibaocheng@163.com 2024-04-10 14:47:38 +08:00
parent 40e6fcfc9e
commit f7f3e2dc46
3 changed files with 56 additions and 35 deletions

View File

@ -8,6 +8,7 @@ import ink.wgink.login.base.handler.LoginFailureHandler;
import ink.wgink.login.base.service.user.UserLoginService; import ink.wgink.login.base.service.user.UserLoginService;
import ink.wgink.module.sms.service.sms.ISmsService; import ink.wgink.module.sms.service.sms.ISmsService;
import ink.wgink.properties.BaseProperties; import ink.wgink.properties.BaseProperties;
import ink.wgink.service.user.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.SecurityConfigurerAdapter; import org.springframework.security.config.annotation.SecurityConfigurerAdapter;
@ -34,11 +35,12 @@ public class LoginPhoneConfig extends SecurityConfigurerAdapter<DefaultSecurityF
private HttpSession httpSession; private HttpSession httpSession;
@Autowired @Autowired
private ISmsService smsService; private ISmsService smsService;
@Autowired
private IUserService iUserService;
@Override @Override
public void configure(HttpSecurity http) throws Exception { public void configure(HttpSecurity http) throws Exception {
super.configure(http); super.configure(http);
LoginPhoneAuthFilter loginPhoneAuthFilter = new LoginPhoneAuthFilter(smsService); LoginPhoneAuthFilter loginPhoneAuthFilter = new LoginPhoneAuthFilter(smsService, iUserService);
loginPhoneAuthFilter.setAuthenticationManager(http.getSharedObject(AuthenticationManager.class)); loginPhoneAuthFilter.setAuthenticationManager(http.getSharedObject(AuthenticationManager.class));
loginPhoneAuthFilter.setAuthenticationFailureHandler(new LoginFailureHandler(baseProperties.getLoginFailure())); loginPhoneAuthFilter.setAuthenticationFailureHandler(new LoginFailureHandler(baseProperties.getLoginFailure()));

View File

@ -2,6 +2,9 @@ package cn.com.tenlion.operator.login.phone.auth;
import ink.wgink.login.base.exceptions.UserAuthenticationException; import ink.wgink.login.base.exceptions.UserAuthenticationException;
import ink.wgink.module.sms.service.sms.ISmsService; import ink.wgink.module.sms.service.sms.ISmsService;
import ink.wgink.service.user.enums.UserStateEnum;
import ink.wgink.service.user.pojo.pos.UserPO;
import ink.wgink.service.user.service.IUserService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
@ -17,9 +20,12 @@ public class LoginPhoneAuthFilter extends AbstractAuthenticationProcessingFilter
private ISmsService smsService; private ISmsService smsService;
public LoginPhoneAuthFilter(ISmsService smsService) { private IUserService iUserService;
public LoginPhoneAuthFilter(ISmsService smsService, IUserService iUserService) {
super(new AntPathRequestMatcher("/oauth/phone", "POST")); super(new AntPathRequestMatcher("/oauth/phone", "POST"));
this.smsService = smsService; this.smsService = smsService;
this.iUserService = iUserService;
} }
@Override @Override
@ -39,6 +45,13 @@ public class LoginPhoneAuthFilter extends AbstractAuthenticationProcessingFilter
if (!StringUtils.equals(code, verifyCode)) { if (!StringUtils.equals(code, verifyCode)) {
throw new UserAuthenticationException("验证码不匹配"); throw new UserAuthenticationException("验证码不匹配");
} }
/**
* 查到用户
*/
UserPO userPO = iUserService.getPOByUsername(phone);
if (userPO != null && userPO.getUserState().equals("1")) {
iUserService.updateUserState(userPO.getUserId(), UserStateEnum.NORMAL);
}
LoginPhoneAuthToken loginPhoneAuthToken = new LoginPhoneAuthToken(phone, null); LoginPhoneAuthToken loginPhoneAuthToken = new LoginPhoneAuthToken(phone, null);
loginPhoneAuthToken.setDetails(authenticationDetailsSource.buildDetails(request)); loginPhoneAuthToken.setDetails(authenticationDetailsSource.buildDetails(request));
return this.getAuthenticationManager().authenticate(loginPhoneAuthToken); return this.getAuthenticationManager().authenticate(loginPhoneAuthToken);

View File

@ -72,6 +72,7 @@
height: 60px; height: 60px;
line-height: 60px; line-height: 60px;
text-align: center; text-align: center;
/* padding: auto 20px auto 50px; */
font-size: 36px; font-size: 36px;
margin: auto 20px auto 50px; margin: auto 20px auto 50px;
} }
@ -82,19 +83,11 @@
line-height: 30px; line-height: 30px;
font-size: 14px; font-size: 14px;
margin: auto 0; margin: auto 0;
/* height: 20px; */
padding: 0 25px; padding: 0 25px;
border-left: 2px solid rgba(0, 0, 0, .2); border-left: 2px solid rgba(0, 0, 0, .2);
} }
.sign a {
width: 260px;
height: 46px;
margin-left: 50px;
margin-top: 17px;
}
.sign a img{
width: 260px;
height: 46px;
}
.go-page { .go-page {
display: flex; display: flex;
justify-content: end; justify-content: end;
@ -295,7 +288,6 @@
} }
#loginBox .denglu .yzmtx1 { #loginBox .denglu .yzmtx1 {
position: relative; position: relative;
display: none;
margin-bottom: 20px; margin-bottom: 20px;
width: 100%; width: 100%;
height: 38px; height: 38px;
@ -313,7 +305,6 @@
border: none; border: none;
} }
#loginBox .denglu .yzmbox1 { #loginBox .denglu .yzmbox1 {
display: none;
width: 100%; width: 100%;
height: 38px; height: 38px;
line-height: 38px; line-height: 38px;
@ -327,7 +318,16 @@
text-align: center; text-align: center;
margin-bottom: 20px; margin-bottom: 20px;
} }
.sign a {
width: 260px;
height: 46px;
margin-left: 50px;
margin-top: 17px;
}
.sign a img{
width: 260px;
height: 46px;
}
#loginBox .change-password { #loginBox .change-password {
display: none; display: none;
} }
@ -414,11 +414,11 @@
<div id="loginBox" class="layadmin-user-login-main"> <div id="loginBox" class="layadmin-user-login-main">
<div class="btnlist"> <div class="btnlist">
<div> <div>
<button id="zhanghaomima">账号密码</button> <button id="zhanghaomima" @click="loginTypeChange('zhanghaomima')">账号密码</button>
<span class="span1"></span> <span class="span1"></span>
</div> </div>
<div> <div>
<button id="yzmlongin">验证码登录</button> <button id="yzmlongin" @click="loginTypeChange('yanzhengma')">验证码登录</button>
<span class="span2"></span> <span class="span2"></span>
</div> </div>
@ -435,22 +435,22 @@
</div> </div>
</div> </div>
<div id="loginFormBox" class="layadmin-user-login-box layadmin-user-login-body layui-form"> <div id="loginFormBox" class="layadmin-user-login-box layadmin-user-login-body layui-form">
<form id="loginForm" :action="pageParams.loginFormAction" method="post" @submit.prevent="submitForm" class="denglu"> <form id="loginForm" :action="activeAction" method="post" @submit.prevent="submitForm" class="denglu">
<input type="hidden" name="referToken" v-model="formData.referToken"/> <input type="hidden" name="referToken" v-model="formData.referToken"/>
<div class="layui-form-item"> <div class="layui-form-item">
<label class="layadmin-user-login-icon layui-icon layui-icon-username" for="username"></label> <label class="layadmin-user-login-icon layui-icon layui-icon-username" for="username"></label>
<input type="text" v-model="formData.username" id="username" name="username" lay-verify="username" placeholder="用户名" class="layui-input"> <input type="text" v-model="formData.username" id="username" name="username" lay-verify="username" placeholder="用户名" class="layui-input">
</div> </div>
<div class="layui-form-item mima" id="passwordBox" > <div class="layui-form-item mima" id="passwordBox" v-if="loginType === 'zhanghaomima'">
<label class="layadmin-user-login-icon layui-icon layui-icon-password" for="password"></label> <label class="layadmin-user-login-icon layui-icon layui-icon-password" for="password"></label>
<input type="password" v-model="formData.password" id="password" name="password" lay-verify="password" placeholder="密码" class="layui-input"> <input type="password" v-model="formData.password" id="password" name="password" lay-verify="password" placeholder="密码" class="layui-input">
</div> </div>
<div class="yzmbox1" @click="getLoginVerificationCode"> <div class="yzmbox1" @click="getLoginVerificationCode" v-if="loginType === 'yanzhengma'">
<span id="yzm11">点击获取验证码</span> <span id="yzm11">点击获取验证码</span>
</div> </div>
<div class="yzmtx1"> <div class="yzmtx1" v-if="loginType === 'yanzhengma'">
<label class="layadmin-user-login-icon layui-icon layui-icon-password" for="password"></label> <label class="layadmin-user-login-icon layui-icon layui-icon-password" for="inputyzm11"></label>
<input type="text" placeholder="请输入验证码" id="inputyzm11"> <input type="text" v-model="formData.code" name="code" placeholder="请输入验证码" lay-verify="code" id="inputyzm11">
</div> </div>
<div class="layui-form-item" id="verificationCodeBox" v-if="pageParams.verificationCode == 'true'" > <div class="layui-form-item" id="verificationCodeBox" v-if="pageParams.verificationCode == 'true'" >
<!-- 验证码 --> <!-- 验证码 -->
@ -535,6 +535,8 @@
el: '#app', el: '#app',
data: { data: {
pageParams: pageParams, pageParams: pageParams,
loginType: 'zhanghaomima',
activeAction: pageParams.loginFormAction,
formData: { formData: {
referToken: pageParams.referToken, referToken: pageParams.referToken,
verificationCode: '', verificationCode: '',
@ -690,7 +692,15 @@
$('#loginForm').submit(); $('#loginForm').submit();
}) })
}, },
loginTypeChange: function(type) {
if(type === 'zhanghaomima') {
this.activeAction = this.pageParams.loginFormAction;
}
if(type === 'yanzhengma') {
this.activeAction = this.pageParams.loginPhoneAction;
}
this.loginType = type;
}
}, },
mounted: function() { mounted: function() {
var self = this; var self = this;
@ -713,6 +723,11 @@
return '密码不能为空'; return '密码不能为空';
} }
}, },
code: function(value, item) {
if(!value) {
return '验证码不能为空';
}
},
verificationCode: function(value, item) { verificationCode: function(value, item) {
if(!value) { if(!value) {
return '验证码不能为空'; return '验证码不能为空';
@ -723,6 +738,7 @@
}) })
// 切换账号密码登录和验证码登录 // 切换账号密码登录和验证码登录
let loginForm = document.querySelector("#loginForm");
let mima = document.querySelector(".mima") let mima = document.querySelector(".mima")
let yzmbox1 = document.querySelector('.yzmbox1') let yzmbox1 = document.querySelector('.yzmbox1')
let yzmtx1 = document.querySelector(".yzmtx1") let yzmtx1 = document.querySelector(".yzmtx1")
@ -741,10 +757,7 @@
span2.style.display = 'none' span2.style.display = 'none'
yzmlongin.style.fontWeight = 400 yzmlongin.style.fontWeight = 400
yzmlongin.style.borderBottom = '0' yzmlongin.style.borderBottom = '0'
mima.style.display = 'block'
bixuan.style.display = 'block' bixuan.style.display = 'block'
yzmtx1.style.display = 'none'
yzmbox1.style.display = 'none'
}) })
// 验证码登录 // 验证码登录
document.querySelector('#yzmlongin').addEventListener('click', function () { document.querySelector('#yzmlongin').addEventListener('click', function () {
@ -754,10 +767,7 @@
span2.style.display = 'block' span2.style.display = 'block'
zhanghaomima.style.fontWeight = 400 zhanghaomima.style.fontWeight = 400
zhanghaomima.style.borderBottom = '0' zhanghaomima.style.borderBottom = '0'
mima.style.display = 'none'
bixuan.style.display = 'none' bixuan.style.display = 'none'
yzmtx1.style.display = 'block'
yzmbox1.style.display = 'block'
}) })
// 点击 忘记密码 去登录 切换div // 点击 忘记密码 去登录 切换div
@ -771,14 +781,10 @@
// 忘记密码 // 忘记密码
document.querySelector('#goChangePassword').addEventListener('click', function () { document.querySelector('#goChangePassword').addEventListener('click', function () {
btnList.style.display = 'none' btnList.style.display = 'none'
change.style.display = 'block' change.style.display = 'block'
dengLu.style.display = 'none' dengLu.style.display = 'none'
changePassword.style.display = 'block' changePassword.style.display = 'block'
}) })
// 去登录 // 去登录