From 5aa4b94f532df3c68115c7b8f7b037cdd2e4612a Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期五, 14 二月 2025 09:48:41 +0800
Subject: [PATCH] #
---
rsf-admin/src/api/auth/index.js | 5 -
rsf-admin/src/config/authProvider.js | 35 +++++------
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java | 34 +++++-----
rsf-server/src/main/java/com/vincent/rsf/server/common/domain/BusinessRes.java | 8 ++
rsf-admin/src/page/login/Register.jsx | 10 ++
rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/TenantServiceImpl.java | 8 +-
rsf-admin/src/page/login/Login.jsx | 52 +++++++++--------
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/TenantController.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java | 2
rsf-server/src/main/java/com/vincent/rsf/server/system/service/TenantService.java | 2
10 files changed, 82 insertions(+), 76 deletions(-)
diff --git a/rsf-admin/src/api/auth/index.js b/rsf-admin/src/api/auth/index.js
index 99d1cf5..9642a8b 100644
--- a/rsf-admin/src/api/auth/index.js
+++ b/rsf-admin/src/api/auth/index.js
@@ -18,10 +18,7 @@
export async function login(_params) {
const res = await request.post('/login', _params);
- if (res.data.code === 200) {
- return res.data.data;
- }
- return Promise.reject(new Error(res.data.msg));
+ return res.data;
}
export async function register(_params) {
diff --git a/rsf-admin/src/config/authProvider.js b/rsf-admin/src/config/authProvider.js
index ee3f976..97820b0 100644
--- a/rsf-admin/src/config/authProvider.js
+++ b/rsf-admin/src/config/authProvider.js
@@ -7,32 +7,29 @@
const AuthProvider = {
// login
login: async ({ username, password, tenantId }) => {
- const { accessToken, user, tenant } = await login({
+ const { code, msg, data } = await login({
username: username,
password: password,
tenantId: tenantId,
- }).catch((error) => {
- console.error(error);
- });
+ })
- if (user && accessToken) {
- const userToPersist = {
- avatar: avatar,
- fullName: user.nickname,
- id: user.id,
- username: user.username,
- tenant: tenant,
+ if (code === 200) {
+ const { accessToken, user, tenant } = data;
+ if (user && accessToken) {
+ const userToPersist = {
+ avatar: avatar,
+ fullName: user.nickname,
+ id: user.id,
+ username: user.username,
+ tenant: tenant,
+ }
+ setToken(accessToken);
+ localStorage.setItem("user", JSON.stringify(userToPersist));
+ return Promise.resolve();
}
- setToken(accessToken);
- localStorage.setItem("user", JSON.stringify(userToPersist));
- return Promise.resolve();
}
- return Promise.reject(
- new HttpError("Unauthorized", 401, {
- message: "Invalid username or password",
- }),
- );
+ return Promise.reject({ code, msg, data });
},
// logout
logout: () => {
diff --git a/rsf-admin/src/page/login/Login.jsx b/rsf-admin/src/page/login/Login.jsx
index b70c721..b86c9d4 100644
--- a/rsf-admin/src/page/login/Login.jsx
+++ b/rsf-admin/src/page/login/Login.jsx
@@ -28,7 +28,7 @@
const location = useLocation();
const { systemInfo, tenantList } = props;
- const { control, handleSubmit, watch, setValue, getValues } = useForm();
+ const { control, handleSubmit, watch, setValue, getValues, setError, clearErrors } = useForm();
const [loading, setLoading] = useState(false);
const [showPassword, setShowPassword] = useState(false);
@@ -53,26 +53,24 @@
login(
data,
location.state ? (location.state).nextPathname : '/'
- ).catch((error) => {
+ ).catch((res) => {
setLoading(false);
- notify(
- typeof error === 'string'
- ? error
- : typeof error === 'undefined' || !error.message
- ? 'ra.auth.sign_in_error'
- : error.message,
- {
- type: 'error',
- messageArgs: {
- _:
- typeof error === 'string'
- ? error
- : error && error.message
- ? error.message
- : undefined,
- },
- }
- );
+ const { code, msg, data } = res;
+ if (code === 10003) {
+ setError('username', {
+ message: msg
+ })
+ } else if (code === 10004) {
+ setError('username', {
+ message: msg
+ })
+ } else if (code === 10001) {
+ setError('password', {
+ message: msg
+ })
+ } else {
+ notify(msg, { type: 'error', messageArgs: { _: msg } });
+ }
});
};
@@ -85,7 +83,7 @@
component="form" onSubmit={handleSubmit(onSubmit)} noValidate
>
<Stack spacing={2}>
- <Controller
+ {/* <Controller
name="tenantId"
control={control}
rules={{ required: true }}
@@ -113,14 +111,14 @@
/>
);
}}
- />
+ /> */}
<Controller
name="username"
control={control}
defaultValue=""
rules={{ required: true }}
- render={({ field }) => (
+ render={({ field, fieldState: { error } }) => (
<TextField
{...field}
label={translate("page.login.username")}
@@ -128,6 +126,8 @@
disabled={loading}
autoFocus
autoComplete="off"
+ error={!!error}
+ helperText={error?.message || ""}
/>
)}
/>
@@ -137,7 +137,7 @@
control={control}
defaultValue=""
rules={{ required: true }}
- render={({ field }) => (
+ render={({ field, fieldState: { error } }) => (
<TextField
{...field}
label={translate("page.login.password")}
@@ -145,6 +145,8 @@
variant="standard"
disabled={loading}
autoComplete="off"
+ error={!!error}
+ helperText={error?.message || ""}
InputProps={{
endAdornment: (
<InputAdornment position="end">
@@ -168,7 +170,7 @@
<Button
type="submit"
variant="contained"
- disabled={loading || !(tenantId && username && password)}
+ disabled={loading || !(true && username && password)}
sx={{
// backgroundColor: "#3D4BA7"
}}
diff --git a/rsf-admin/src/page/login/Register.jsx b/rsf-admin/src/page/login/Register.jsx
index e8a0822..9fa0a5c 100644
--- a/rsf-admin/src/page/login/Register.jsx
+++ b/rsf-admin/src/page/login/Register.jsx
@@ -103,14 +103,20 @@
// register
const onSubmit = (params) => {
- // console.log(params);
setLoading(true);
register(params).then(res => {
setLoading(false);
const { code, msg, data } = res;
if (code === 200) {
- console.log(data);
notify(msg, { type: 'success', messageArgs: { _: msg } });
+ // to login
+ login(
+ params,
+ location.state ? (location.state).nextPathname : '/'
+ ).catch(({ code, msg }) => {
+ setLoading(false);
+ notify(msg, { type: 'error', messageArgs: { _: msg } });
+ });
} else if (code === 10002) {
setError("username", {
message: msg
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/BusinessRes.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/BusinessRes.java
index 46c7329..cebfa19 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/BusinessRes.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/BusinessRes.java
@@ -4,8 +4,12 @@
public class BusinessRes implements BaseRes {
- public final static String INVALID_PASSWORD = "10001 - The Current Password Was Incorrect";
+ public final static String INVALID_PASSWORD = "10001 - The current password was incorrect";
- public final static String USERNAME_EXIST = "10002 - The username already exist";
+ public final static String USERNAME_EXIST = "10002 - Username already exist";
+
+ public final static String USERNAME_NOT_EXIST = "10003 - Username doesn't exist";
+
+ public final static String USERNAME_FROZEN = "10004 - Account frozen";
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java
index efef6cd..b38af13 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/AuthController.java
@@ -1,6 +1,5 @@
package com.vincent.rsf.server.system.controller;
-import com.vincent.rsf.common.enums.SystemModeType;
import com.vincent.rsf.common.utils.Utils;
import com.vincent.rsf.framework.common.BaseRes;
import com.vincent.rsf.framework.common.Cools;
@@ -39,8 +38,7 @@
import java.util.stream.Collectors;
/**
- * 璁よ瘉鎺у埗鍣�
- *
+ * Authority Controller
* Created by vincent on 1/30/2024
*/
@RestController
@@ -63,22 +61,20 @@
@PostMapping("/login")
public R login(@RequestBody LoginParam param, HttpServletRequest request) {
-// System.out.println(userService.encodePassword("123456"));
String username = param.getUsername();
- Long tenantId = param.getTenantId();
- User user = userService.getByUsername(username, tenantId);
+ User user = userService.getByUsername(username, null);
if (user == null) {
- return R.error("Username Does Not Exist");
+ return R.parse(BusinessRes.USERNAME_NOT_EXIST);
}
if (!user.getStatus().equals(StatusType.ENABLE.val)) {
- return R.error("Account Frozen");
+ return R.parse(BusinessRes.USERNAME_FROZEN);
}
if (!userService.comparePassword(user.getPassword(), param.getPassword())) {
- return R.error("Invalid Password");
+ return R.parse(BusinessRes.INVALID_PASSWORD);
}
String accessToken = JwtUtil.buildToken(new JwtSubject(username, user.getTenantId()),
configProperties.getTokenExpireTime(), configProperties.getTokenKey());
- userLoginService.saveAsync(user.getId(), accessToken, UserLogin.TYPE_LOGIN, tenantId, null, request);
+ userLoginService.saveAsync(user.getId(), accessToken, UserLogin.TYPE_LOGIN, user.getTenantId(), null, request);
Tenant tenant = tenantService.getById(user.getTenantId());
return R.ok("Sign In Success").add(new LoginResult(accessToken, user, tenant.getName()));
}
@@ -121,7 +117,6 @@
return R.error("The verification code is incorrect.");
}
}
-
// register
TenantInitParam initParam = new TenantInitParam();
initParam.setEmail(param.getEmail());
@@ -129,21 +124,26 @@
initParam.setPassword(param.getPassword());
initParam.setName(param.getUsername());
initParam.setFlag(param.getUsername());
- if (!tenantService.initTenant(initParam)) {
+ Long tenantId = tenantService.initTenant(initParam);
+ if (null == tenantId) {
throw new CoolException("Failed to register");
}
-
redisService.delete(EmailType.REGISTER_VERIFY.toString(), param.getEmail());
- return R.ok();
+ // token
+ User user = userService.getByUsername(param.getUsername(), tenantId);
+ String accessToken = JwtUtil.buildToken(new JwtSubject(user.getUsername(), user.getTenantId()),
+ configProperties.getTokenExpireTime(), configProperties.getTokenKey());
+ userLoginService.saveAsync(user.getId(), accessToken, UserLogin.TYPE_LOGIN, tenantId, null, request);
+ Tenant tenant = tenantService.getById(user.getTenantId());
+ return R.ok().add(new LoginResult(accessToken, user, tenant.getName()));
}
@GetMapping("/system/info")
public R systemInfo() {
- SystemModeType systemMode = configProperties.getSystemMode();
SystemInfoVo infoVo = new SystemInfoVo();
infoVo.setName(configProperties.getSystemName());
infoVo.setVersion(configProperties.getSystemVersion());
- infoVo.setMode(systemMode.toString());
+ infoVo.setMode(configProperties.getSystemMode().toString());
return R.ok(infoVo);
}
@@ -191,7 +191,7 @@
@PostMapping("/auth/reset/password")
public R resetPassword(@RequestBody UpdatePasswordParam param) {
if (Cools.isEmpty(param.getOldPassword(), param.getNewPassword())) {
- return R.error("Parameters Cannot Be Empty");
+ return R.parse(BaseRes.PARAM);
}
Long userId = getLoginUserId();
if (userId == null) {
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/TenantController.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/TenantController.java
index f1676da..8388caa 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/TenantController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/TenantController.java
@@ -68,7 +68,7 @@
@OperationLog("Init Tenant")
@PostMapping("/tenant/init")
public R init(@RequestBody TenantInitParam param) {
- return tenantService.initTenant(param) ? R.ok("Initialize Success") : R.parse(BaseRes.PARAM);
+ return null != tenantService.initTenant(param) ? R.ok("Initialize Success") : R.parse(BaseRes.PARAM);
}
@PreAuthorize("hasAuthority('system:tenant:update')")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java
index 20cff7c..65cd62a 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/controller/param/LoginParam.java
@@ -16,6 +16,6 @@
private String password;
- private Long tenantId;
+// private Long tenantId;
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/TenantService.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/TenantService.java
index 29679ae..2757646 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/TenantService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/TenantService.java
@@ -6,6 +6,6 @@
public interface TenantService extends IService<Tenant> {
- Boolean initTenant(TenantInitParam param);
+ Long initTenant(TenantInitParam param);
}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/TenantServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/TenantServiceImpl.java
index ea68f4a..c5c6ff7 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/TenantServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/system/service/impl/TenantServiceImpl.java
@@ -40,13 +40,13 @@
@Override
@Transactional
- public Boolean initTenant(TenantInitParam param) {
+ public Long initTenant(TenantInitParam param) {
// valid ----------------------------
if (null == param) {
- return false;
+ return null;
}
if (Cools.isEmpty(param.getName(), param.getFlag(), param.getUsername(), param.getPassword())) {
- return false;
+ return null;
}
if (null != userService.getByUsername(param.getUsername(), null)) {
@@ -133,7 +133,7 @@
}
}
- return true;
+ return tenant.getId();
}
}
--
Gitblit v1.9.1