blob: 11446f98bf76ecb8c17f74db80aa56841c0924f1 [file] [log] [blame]
wuchimedes079c1632025-04-02 22:01:20 +08001package com.example.g8backend.controller;
2
3import com.example.g8backend.entity.User;
4import com.example.g8backend.service.IUserService;
5import com.example.g8backend.util.JwtUtil;
6import org.springframework.beans.factory.annotation.Autowired;
7import org.springframework.http.ResponseEntity;
8import org.springframework.security.crypto.password.PasswordEncoder;
9import org.springframework.web.bind.annotation.*;
10
11import java.util.HashMap;
12import java.util.Map;
13
14@RestController
15@RequestMapping("/auth")
16public class AuthController {
17
18 @Autowired
19 private IUserService userService;
20
21 @Autowired
22 private PasswordEncoder passwordEncoder;
23
24 @Autowired
25 private JwtUtil jwtUtil;
26
27 // 用户注册
28 @PostMapping("/register")
29 public ResponseEntity<?> register(@RequestBody User user) {
30 if (userService.getUserByName(user.getUserName()) != null) {
31 return ResponseEntity.badRequest().body("用户名已存在");
32 }
33 userService.registerUser(user);
34 return ResponseEntity.ok("注册成功");
35 }
36
37 // 用户登录
38 @PostMapping("/login")
39 public ResponseEntity<?> login(@RequestBody User user) {
40 User existingUser = userService.getUserByEmail(user.getEmail());
41 if (existingUser == null || !passwordEncoder.matches(user.getPassword(), existingUser.getPassword())) {
42 return ResponseEntity.badRequest().body("用户名或密码错误");
43 }
44 String token = jwtUtil.generateToken(existingUser.getUserName());
45 Map<String, String> response = new HashMap<>();
46 response.put("token", token);
47 return ResponseEntity.ok(response);
48 }
49}