feat: init commit

This commit is contained in:
merlin
2025-10-16 16:57:27 +08:00
commit 4f84603d82
57 changed files with 2243 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
package xin.merlin.myblog_server.controller;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import xin.merlin.myblog_server.config.CustomUserDetails;
import xin.merlin.myblog_server.config.LoginDetails;
import xin.merlin.myblog_server.entity.Account;
import xin.merlin.myblog_server.service.impl.AccountServiceImpl;
import xin.merlin.myblog_server.utils.JwtUtil;
import xin.merlin.myblog_server.utils.RandomCode;
import xin.merlin.myblog_server.utils.RequestBack;
import xin.merlin.myblog_server.utils.SHA256Util;
import xin.merlin.myblog_server.utils.enums.ResultCode;
import java.util.Map;
@RestController
@RequiredArgsConstructor
public class LoginController {
@Autowired
private LoginDetails loginDetails;
@Autowired
private AccountServiceImpl accountServiceImpl;
@Autowired
private SHA256Util sha256Util;
@Autowired
private JwtUtil jwtUtil;
@Autowired
private HttpServletRequest request;
// 登录逻辑
@PostMapping("/login")
public RequestBack login(@RequestBody Account account) {
try {
String ip = request.getRemoteAddr();
account.setIp(ip);
CustomUserDetails userDetails = loginDetails
.loadUserByUsername(account.getU_account());
account.setU_password(sha256Util
.encryptPassword(account.getU_password(),userDetails.getU_id()));
//System.out.println(account.getU_password());
// 验证密码
if(!account.getU_password().equals(userDetails.getPassword()))
return RequestBack.success(ResultCode.USER_PASSWORD_ERROR,null);
//System.out.println(userDetails.getU_id());
// 生成token
String token = jwtUtil.generateToken(account.getU_account(),userDetails.getU_id());
return RequestBack.success(ResultCode.SUCCESS, Map.of("token",token,"token_type","Bearer","role","User"));
} catch (UsernameNotFoundException e) {
System.out.println(e.getMessage());
return RequestBack.fail(ResultCode.SERVER_ERROR);
}
}
// 注册逻辑
@PostMapping("/register")
public RequestBack register(@RequestBody Account account) {
try {
if(accountServiceImpl.isExist(account.getU_account())) return RequestBack.success(ResultCode.USER_EXIST,null);
// 分配id
String u_id;
do{
u_id = "U"+ RandomCode.generateID();
}while(accountServiceImpl.idIsExist(u_id));
// 注册信息初始化
account.setU_id(u_id);
account.setU_password(sha256Util.encryptPassword(account.getU_password(),account.getU_id()));
account.setU_status(0);
account.setRole("User");
// 注册
accountServiceImpl.register(account);
return RequestBack.success(ResultCode.SUCCESS,null);
} catch (Exception e) {
System.out.println(e.getMessage());
return RequestBack.fail(ResultCode.SERVER_ERROR);
}
}
}