From 4131d8bdcadbe766c548a70735fc4b940790ebec Mon Sep 17 00:00:00 2001
From: WangHao <43278047@qq.com>
Date: Sun, 18 Apr 2021 20:36:23 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B3=A8=E5=86=8C=E5=8A=9F?=
=?UTF-8?q?=E8=83=BD=20=E9=80=9A=E8=BF=87=E6=89=8B=E6=9C=BA=E5=8F=B7?=
=?UTF-8?q?=E6=B3=A8=E5=86=8C=E8=B4=A6=E5=8F=B790%?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/RegisterPhoneController.java | 25 ++-
.../controller/system/SysLoginController.java | 30 ++-
.../ruoyi/web/test/controller/UIDTest.java | 31 ++-
.../com/ruoyi/common/constant/Constants.java | 2 +-
.../common/core/domain/model/LoginBody.java | 37 ----
.../core/domain/model/RegisterBody.java | 106 +++++++++
.../com/ruoyi/common/core/redis/RedisKey.java | 2 +
.../com/ruoyi/common/utils/PhoneCode.java | 8 +-
.../framework/config/SecurityConfig.java | 10 +-
.../web/service/SysLoginService.java | 39 ++--
.../ruoyi/system/mapper/SysUserMapper.java | 2 +-
.../resources/mapper/system/SysUserMapper.xml | 6 +-
ruoyi-ui/src/api/login.js | 109 +++++----
ruoyi-ui/src/store/modules/user.js | 208 ++++++++++--------
ruoyi-ui/src/views/login.vue | 160 +++++++++++++-
.../bookmark/service/ISqMenuService.java | 6 +-
.../service/impl/SqMenuServiceImpl.java | 4 +-
17 files changed, 557 insertions(+), 228 deletions(-)
create mode 100644 ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/RegisterPhoneController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/RegisterPhoneController.java
index 857b651af..fe5f6b91f 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/RegisterPhoneController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/RegisterPhoneController.java
@@ -6,9 +6,10 @@ import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.PhoneCode;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.bookmarkhtml.Const;
+import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -26,7 +27,8 @@ public class RegisterPhoneController extends BaseController
@Autowired
private ISqMenuService iSqMenuService;
-
+ @Autowired
+ private ISysUserService userService;
/**
* 发送注册验证码
*/
@@ -35,11 +37,23 @@ public class RegisterPhoneController extends BaseController
{
AjaxResult ajaxResult = new AjaxResult();
ajaxResult.put("code", HttpStatus.SUCCESS);
+
+ if (StringUtils.isEmpty(phone)){
+ ajaxResult.put("msg", "非法手机号,请重新输入!");
+ return ajaxResult;
+ }
+ int phoneCount = userService.countUserByPhone(phone);
+ if (phoneCount != 0) {
+ ajaxResult.put("msg", "此手机账号已经被使用,请前往登陆!");
+ return ajaxResult;
+ }
+
+ Long time = 3600L;//限制规定时间内 访问次数
//防止重复点击
- boolean phoneCodelFlag = iSqMenuService.countRepetition(Const.PHONE_REGISTER,getAuthUser().getUserId(),3600L,10); //3600秒 最多请求10次验证码
+ boolean phoneCodelFlag = iSqMenuService.countRepetition(Const.PHONE_REGISTER,Long.valueOf(phone),time,10); //3600秒 最多请求10次验证码
if(!phoneCodelFlag){
- ajaxResult.put("msg","短时间内发送频繁,请稍后再操作!");
+ ajaxResult.put("msg","短时间内发送频繁,请过几个小时就再操作!");
return ajaxResult;
}
@@ -50,7 +64,8 @@ public class RegisterPhoneController extends BaseController
ajaxResult.put("msg","短信发送成功,请在"+Constants.CAPTCHA_PHONE_EXPIRATION+"分钟内验证。");
return ajaxResult;
}else {
- ajaxResult.put("msg","短信发送失败");
+ ajaxResult.put("code", HttpStatus.ERROR);
+ ajaxResult.put("msg","系统错误,短信发送失败,请稍后再试!");
return ajaxResult;
}
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
index dc6678faf..b68d74cdf 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
@@ -2,6 +2,11 @@ package com.ruoyi.web.controller.system;
import java.util.List;
import java.util.Set;
+
+import com.ruoyi.common.constant.HttpStatus;
+import com.ruoyi.common.core.domain.model.RegisterBody;
+import com.ruoyi.common.core.redis.RedisKey;
+import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
@@ -39,21 +44,32 @@ public class SysLoginController
@Autowired
private TokenService tokenService;
+ @Autowired
+ private ISysUserService userService;
/**
* 注册方法
*
- * @param loginBody 注册信息
+ * @param registerBody 注册信息
* @return 结果
*/
@PostMapping("/registerUser")
- public AjaxResult registerUser(@RequestBody LoginBody loginBody)
- {
+ public AjaxResult registerUser(@RequestBody RegisterBody registerBody) {
+
AjaxResult ajax = AjaxResult.success();
- // 生成令牌
- String token = loginService.registerUser(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
- loginBody.getUuid(),loginBody.getEmail(),loginBody.getPhone());
- ajax.put(Constants.TOKEN, token);
+
+ String msg = loginService.registerUser(registerBody.getUsername(), registerBody.getPassword(), registerBody.getPhoneCode(),
+ registerBody.getUuid(), registerBody.getEmail(), registerBody.getPhone());
+
+ if (Constants.LOGIN_SUCCESS.equals(msg)) {
+ ajax.put("msg", "注册成功,请前往登陆!");
+ } else if (Constants.LOGIN_FAIL.equals(msg)) {
+ ajax.put("code", HttpStatus.ERROR);
+ ajax.put("msg", "注册失败,系统错误,请稍后再尝试!");
+ } else {
+ ajax.put("code", HttpStatus.ERROR);
+ ajax.put("msg", msg);
+ }
return ajax;
}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/UIDTest.java b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/UIDTest.java
index fa485cd19..6b237be65 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/UIDTest.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/test/controller/UIDTest.java
@@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import com.github.wujun234.uid.UidGenerator;
import com.ruoyi.bookmark.service.ISqMenuService;
import com.ruoyi.common.core.redis.RedisUtil;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.bookmarkhtml.Const;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
@@ -25,12 +26,9 @@ public class UIDTest extends BaseSpringBootTest{
private UidGenerator cachedUidGenerator;
@Autowired
private ISqMenuService iSqMenuService;
- @Autowired
- private RedisUtil redisUtil;
@Test
public void testSerialGenerate() {
- // Generate UID
long cachedUidGeneratoruid = cachedUidGenerator.getUID();
long defaultUidGeneratoruid = defaultUidGenerator.getUID(); //用这个
@@ -38,11 +36,6 @@ public class UIDTest extends BaseSpringBootTest{
System.out.println("cachedUidGeneratoruid解密:"+cachedUidGenerator.parseUID(cachedUidGeneratoruid));
System.out.println("defaultUidGeneratoruid:"+defaultUidGeneratoruid);
System.out.println("defaultUidGeneratoruid解密:"+cachedUidGenerator.parseUID(defaultUidGeneratoruid));
-
- // Parse UID into [Timestamp, WorkerId, Sequence]
- // {"UID":"450795408770","timestamp":"2019-02-20 14:55:39","workerId":"27","sequence":"2"}
-// System.out.println(cachedUidGenerator.parseUID(uid));
-
}
@Test
public void dateTest(){
@@ -64,5 +57,27 @@ public class UIDTest extends BaseSpringBootTest{
}
+ //密码加密
+ @Test
+ public void rest3(){
+ String newPassword = "admin123";
+ String password =SecurityUtils.encryptPassword(newPassword);
+ System.out.println(password);
+ }
+
+
+
+ //密码加密对比
+ @Test
+ public void rest4(){
+ String newPassword = "2654430977wh";
+ if( SecurityUtils.matchesPassword(newPassword, "$2a$10$zAx2lmzBNwmL.nFqfLmps.CsrSblAPtMvy29Ns9fwzeq8hIoKLT72")){ //newPassword 密码 password加密的后密码
+ System.out.println("密码相同!");
+ }else{
+ System.out.println("密码不相同!");
+ }
+ }
+
+
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
index 543fe78e9..aa9d9b90c 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
@@ -69,7 +69,7 @@ public class Constants
/**
* 手机号验证码有效期(分钟)
*/
- public static final Integer CAPTCHA_PHONE_EXPIRATION = 2;
+ public static final Integer CAPTCHA_PHONE_EXPIRATION = 15;
/**
* 令牌
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
index f780a7a3d..ccaba7cea 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
@@ -17,19 +17,6 @@ public class LoginBody
*/
private String password;
- /**
- * 邮箱
- */
- private String email;
- /**
- * 手机号
- */
- private String phone;
- /**
- * 手机号验证码
- */
- private String phoneCode;
-
/**
* 验证码
*/
@@ -79,28 +66,4 @@ public class LoginBody
{
this.uuid = uuid;
}
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getPhone() {
- return phone;
- }
-
- public void setPhone(String phone) {
- this.phone = phone;
- }
-
- public String getPhoneCode() {
- return phoneCode;
- }
-
- public void setPhoneCode(String phoneCode) {
- this.phoneCode = phoneCode;
- }
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
new file mode 100644
index 000000000..d50b01a66
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
@@ -0,0 +1,106 @@
+package com.ruoyi.common.core.domain.model;
+
+/**
+ * 用户登录对象
+ *
+ * @author ruoyi
+ */
+public class RegisterBody
+{
+ /**
+ * 用户名
+ */
+ private String username;
+
+ /**
+ * 用户密码
+ */
+ private String password;
+
+ /**
+ * 邮箱
+ */
+ private String email;
+ /**
+ * 手机号
+ */
+ private String phone;
+ /**
+ * 手机号验证码
+ */
+ private String phoneCode;
+
+ /**
+ * 验证码
+ */
+ private String code;
+
+ /**
+ * 唯一标识
+ */
+ private String uuid = "";
+
+ public String getUsername()
+ {
+ return username;
+ }
+
+ public void setUsername(String username)
+ {
+ this.username = username;
+ }
+
+ public String getPassword()
+ {
+ return password;
+ }
+
+ public void setPassword(String password)
+ {
+ this.password = password;
+ }
+
+ public String getCode()
+ {
+ return code;
+ }
+
+ public void setCode(String code)
+ {
+ this.code = code;
+ }
+
+ public String getUuid()
+ {
+ return uuid;
+ }
+
+ public void setUuid(String uuid)
+ {
+ this.uuid = uuid;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getPhone() {
+ return phone;
+ }
+
+ public void setPhone(String phone) {
+ this.phone = phone;
+ }
+
+ public String getPhoneCode() {
+ return phoneCode;
+ }
+
+ public void setPhoneCode(String phoneCode) {
+ this.phoneCode = phoneCode;
+ }
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisKey.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisKey.java
index 204f28423..fa54412ce 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisKey.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisKey.java
@@ -12,4 +12,6 @@ public class RedisKey {
public static final String BOOKMARK ="bookMark:";
public static final String CONNECTOR =":";
+
+ public static final String REGISTER ="register:";
}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneCode.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneCode.java
index 36fbe0495..95dc19826 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneCode.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneCode.java
@@ -10,6 +10,7 @@ import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
import com.ruoyi.common.constant.Constants;
+import com.ruoyi.common.core.redis.RedisKey;
import com.ruoyi.common.core.redis.RedisUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +38,7 @@ public class PhoneCode {
*/
public static Boolean getPhonemsg(String phone) {
+ String key = RedisKey.BOOKMARK + RedisKey.REGISTER + phone;
// 短信验证---阿里
// 设置超时时间-可自行调整
System.setProperty(PhoneDeploy.defaultConnectTimeout, PhoneDeploy.Timeout);
@@ -83,16 +85,16 @@ public class PhoneCode {
if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
// 请求成功
RedisUtil redisUtil = new RedisUtil();
- redisUtil.setEx(phone,code,Constants.CAPTCHA_PHONE_EXPIRATION, TimeUnit.MINUTES);
+ redisUtil.setEx(key,code,Constants.CAPTCHA_PHONE_EXPIRATION, TimeUnit.MINUTES);
return true;
} else {
// 验证码失败 如果验证码出错,会输出错误码告诉你具体原因
- logger.info("手机号:" + code + " 时间"+DateUtil.now()+" 发送失败!!错误日志:"+sendSmsResponse.getCode());
+ logger.info("手机号:" + phone + " 时间"+DateUtil.now()+" 发送失败!!错误日志:"+sendSmsResponse.getCode());
return false;
}
} catch (ClientException e) {
e.printStackTrace();
- logger.info("手机号:" + code + " 时间"+DateUtil.now()+" 发送失败!!");
+ logger.info("手机号:" + phone + " 时间"+DateUtil.now()+" 发送失败!!");
return false;
}
}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index 10531590f..1442fb9f7 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -20,7 +20,7 @@ import com.ruoyi.framework.security.handle.LogoutSuccessHandlerImpl;
/**
* spring security配置
- *
+ *
* @author ruoyi
*/
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
@@ -31,7 +31,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
*/
@Autowired
private UserDetailsService userDetailsService;
-
+
/**
* 认证失败处理类
*/
@@ -55,7 +55,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
*/
@Autowired
private CorsFilter corsFilter;
-
+
/**
* 解决 无法直接注入 AuthenticationManager
*
@@ -98,6 +98,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
.authorizeRequests()
// 对于登录login 验证码captchaImage 允许匿名访问
.antMatchers("/login", "/captchaImage").anonymous()
+ // 对于注册账号 手机号验证码 允许匿名访问
+ .antMatchers("/registerUser", "/registerPhoneCode").anonymous()
.antMatchers(
HttpMethod.GET,
"/*.html",
@@ -125,7 +127,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter
httpSecurity.addFilterBefore(corsFilter, LogoutFilter.class);
}
-
+
/**
* 强散列哈希加密实现
*/
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index c1f795d7b..5ba65a80b 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -4,6 +4,10 @@ import javax.annotation.Resource;
import cn.hutool.core.date.DateUtil;
import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.core.redis.RedisKey;
+import com.ruoyi.common.core.redis.RedisUtil;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.service.ISysUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
@@ -40,6 +44,9 @@ public class SysLoginService
@Autowired
private RedisCache redisCache;
+ @Autowired
+ private RedisUtil redisUtil;
+
@Autowired
private ISysUserService sysUserService;
@@ -101,36 +108,42 @@ public class SysLoginService
*
* @param username 用户名
* @param password 密码
- * @param code 验证码
+ * @param phone 手机号
+ * @param phoneCode 手机号验证码
* @param uuid 唯一标识
* @param email 邮箱
- * @param phone 手机号
* @return 结果
*/
- public String registerUser(String username, String password, String code, String uuid, String email, String phone) {
+ public String registerUser(String username, String password, String phoneCode, String uuid, String email, String phone) {
int usernameCount = sysUserService.countUserByUserName(username);
if (usernameCount != 0) {
- return username + "登陆账号已经存在,请更换!";
+ return username + "登陆账号已经被使用,请更换!";
}
int phoneCount = sysUserService.countUserByPhone(phone);
if (phoneCount != 0) {
- return phone + "手机账号已经存在,请更换!";
+ return phone + "手机账号已经被使用,请更换!";
}
-
- //验证传入的手机号和验证码是否匹配
-
-
-
-
-
+// String key = RedisKey.BOOKMARK + RedisKey.REGISTER + phone;
+// //验证传入的手机号和验证码是否匹配
+// String redisPhoneCode = redisUtil.get(key);
+// if (StringUtils.isEmpty(redisPhoneCode)){
+// return "验证码已经过期!";
+// }
+// if (!redisPhoneCode.equals(phoneCode)){
+// return "验证码错误!";
+// }else {
+// //验证码正确 删除验证码 不可重复使用
+// redisUtil.delete(key);
+// }
//加密信息存入数据库
SysUser user = new SysUser();
user.setUserName(username);
- user.setPassword(password);
+ user.setPassword(SecurityUtils.encryptPassword(password));
user.setDeptId(100L);
user.setNickName(username);
+ user.setPhonenumber(phone);
user.setCreateTime(DateUtil.date(System.currentTimeMillis()));
user.setUpdateBy("admin");
return sysUserService.insertUser(user)!=0?Constants.LOGIN_SUCCESS:Constants.LOGIN_FAIL;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 5e33be9e9..bb3379f75 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -117,7 +117,7 @@ public interface SysUserMapper
*/
public int selectUserByEmail(String email);
/**
- * 查询登陆名称是否唯一
+ * 查询登陆账号是否唯一
*
* @param userName 用户名
* @return 用户对象信息
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
index 838edaa61..a71f7fc72 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -87,16 +87,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
diff --git a/ruoyi-ui/src/api/login.js b/ruoyi-ui/src/api/login.js
index 9971357ed..4404268a4 100644
--- a/ruoyi-ui/src/api/login.js
+++ b/ruoyi-ui/src/api/login.js
@@ -1,40 +1,69 @@
-import request from '@/utils/request'
-
-// 登录方法
-export function login(username, password, code, uuid) {
- const data = {
- username,
- password,
- code,
- uuid
- }
- return request({
- url: '/login',
- method: 'post',
- data: data
- })
-}
-
-// 获取用户详细信息
-export function getInfo() {
- return request({
- url: '/getInfo',
- method: 'get'
- })
-}
-
-// 退出方法
-export function logout() {
- return request({
- url: '/logout',
- method: 'post'
- })
-}
-
-// 获取验证码
-export function getCodeImg() {
- return request({
- url: '/captchaImage',
- method: 'get'
- })
-}
\ No newline at end of file
+import request from '@/utils/request'
+
+// 登录方法
+export function login(username, password, code, uuid) {
+ const data = {
+ username,
+ password,
+ code,
+ uuid
+ }
+ return request({
+ url: '/login',
+ method: 'post',
+ data: data
+ })
+}
+
+// 获取用户详细信息
+export function getInfo() {
+ return request({
+ url: '/getInfo',
+ method: 'get'
+ })
+}
+
+// 退出方法
+export function logout() {
+ return request({
+ url: '/logout',
+ method: 'post'
+ })
+}
+
+// 获取验证码
+export function getCodeImg() {
+ return request({
+ url: '/captchaImage',
+ method: 'get'
+ })
+}
+
+
+// 注册账号方法
+export function registerUser(username, password, phone, phoneCode) {
+ const data = {
+ username,
+ password,
+ phone,
+ phoneCode
+ }
+ return request({
+ url: '/registerUser',
+ method: 'post',
+ data: data
+ })
+}
+
+
+// 获取手机号验证码注册
+export function getregisterUser(phone) {
+ var query={
+ phone:phone
+ }
+ return request({
+ url: '/registerPhoneCode',
+ method: 'get',
+ params:query
+ })
+}
diff --git a/ruoyi-ui/src/store/modules/user.js b/ruoyi-ui/src/store/modules/user.js
index dd2b6dbef..454bb94b2 100644
--- a/ruoyi-ui/src/store/modules/user.js
+++ b/ruoyi-ui/src/store/modules/user.js
@@ -1,96 +1,112 @@
-import { login, logout, getInfo } from '@/api/login'
-import { getToken, setToken, removeToken } from '@/utils/auth'
-
-const user = {
- state: {
- token: getToken(),
- name: '',
- avatar: '',
- roles: [],
- permissions: []
- },
-
- mutations: {
- SET_TOKEN: (state, token) => {
- state.token = token
- },
- SET_NAME: (state, name) => {
- state.name = name
- },
- SET_AVATAR: (state, avatar) => {
- state.avatar = avatar
- },
- SET_ROLES: (state, roles) => {
- state.roles = roles
- },
- SET_PERMISSIONS: (state, permissions) => {
- state.permissions = permissions
- }
- },
-
- actions: {
- // 登录
- Login({ commit }, userInfo) {
- const username = userInfo.username.trim()
- const password = userInfo.password
- const code = userInfo.code
- const uuid = userInfo.uuid
- return new Promise((resolve, reject) => {
- login(username, password, code, uuid).then(res => {
- setToken(res.token)
- commit('SET_TOKEN', res.token)
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // 获取用户信息
- GetInfo({ commit, state }) {
- return new Promise((resolve, reject) => {
- getInfo(state.token).then(res => {
- const user = res.user
- const avatar = user.avatar == "" ? require("@/assets/image/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
- if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
- commit('SET_ROLES', res.roles)
- commit('SET_PERMISSIONS', res.permissions)
- } else {
- commit('SET_ROLES', ['ROLE_DEFAULT'])
- }
- commit('SET_NAME', user.userName)
- commit('SET_AVATAR', avatar)
- resolve(res)
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // 退出系统
- LogOut({ commit, state }) {
- return new Promise((resolve, reject) => {
- logout(state.token).then(() => {
- commit('SET_TOKEN', '')
- commit('SET_ROLES', [])
- commit('SET_PERMISSIONS', [])
- removeToken()
- resolve()
- }).catch(error => {
- reject(error)
- })
- })
- },
-
- // 前端 登出
- FedLogOut({ commit }) {
- return new Promise(resolve => {
- commit('SET_TOKEN', '')
- removeToken()
- resolve()
- })
- }
- }
-}
-
-export default user
+import { login, logout, getInfo,registerUser } from '@/api/login'
+import { getToken, setToken, removeToken } from '@/utils/auth'
+
+const user = {
+ state: {
+ token: getToken(),
+ name: '',
+ avatar: '',
+ roles: [],
+ permissions: []
+ },
+
+ mutations: {
+ SET_TOKEN: (state, token) => {
+ state.token = token
+ },
+ SET_NAME: (state, name) => {
+ state.name = name
+ },
+ SET_AVATAR: (state, avatar) => {
+ state.avatar = avatar
+ },
+ SET_ROLES: (state, roles) => {
+ state.roles = roles
+ },
+ SET_PERMISSIONS: (state, permissions) => {
+ state.permissions = permissions
+ }
+ },
+
+ actions: {
+ // 登录
+ Login({ commit }, userInfo) {
+ const username = userInfo.username.trim()
+ const password = userInfo.password
+ const code = userInfo.code
+ const uuid = userInfo.uuid
+ return new Promise((resolve, reject) => {
+ login(username, password, code, uuid).then(res => {
+ setToken(res.token)
+ commit('SET_TOKEN', res.token)
+ resolve()
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
+ // 注册
+ register({ commit }, userInfo) {
+ var that = this;
+ const username = userInfo.username.trim()
+ const password = userInfo.password
+ const phone = userInfo.phone
+ const phoneCode = userInfo.phoneCode
+ return new Promise((resolve, reject) => {
+ registerUser(username, password, phone, phoneCode).then(res => {
+
+ resolve(res)
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // 获取用户信息
+ GetInfo({ commit, state }) {
+ return new Promise((resolve, reject) => {
+ getInfo(state.token).then(res => {
+ const user = res.user
+ const avatar = user.avatar == "" ? require("@/assets/image/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
+ if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组
+ commit('SET_ROLES', res.roles)
+ commit('SET_PERMISSIONS', res.permissions)
+ } else {
+ commit('SET_ROLES', ['ROLE_DEFAULT'])
+ }
+ commit('SET_NAME', user.userName)
+ commit('SET_AVATAR', avatar)
+ resolve(res)
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // 退出系统
+ LogOut({ commit, state }) {
+ return new Promise((resolve, reject) => {
+ logout(state.token).then(() => {
+ commit('SET_TOKEN', '')
+ commit('SET_ROLES', [])
+ commit('SET_PERMISSIONS', [])
+ removeToken()
+ resolve()
+ }).catch(error => {
+ reject(error)
+ })
+ })
+ },
+
+ // 前端 登出
+ FedLogOut({ commit }) {
+ return new Promise(resolve => {
+ commit('SET_TOKEN', '')
+ removeToken()
+ resolve()
+ })
+ }
+ }
+}
+
+export default user
diff --git a/ruoyi-ui/src/views/login.vue b/ruoyi-ui/src/views/login.vue
index 4e58e9f65..8535d58f5 100644
--- a/ruoyi-ui/src/views/login.vue
+++ b/ruoyi-ui/src/views/login.vue
@@ -1,7 +1,7 @@
- 藏趣云
+ {{h3}}
@@ -18,7 +18,40 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 获取验证码
+ {{timer}}
+
+
+
+
+
+
记住密码
+ {{switchLoginText}}>>
- 登 录
- 登 录 中...
+ {{loginButton}}
+ {{loginButtonMeg}}
@@ -54,7 +88,7 @@