blob: 77e4130341c51bdd98f7ece9c246e0bebc735f1a [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;
wuchimedes18addec2025-04-03 17:59:02 +08007import org.springframework.data.redis.core.RedisTemplate;
wuchimedes079c1632025-04-02 22:01:20 +08008import org.springframework.http.ResponseEntity;
9import org.springframework.security.crypto.password.PasswordEncoder;
10import org.springframework.web.bind.annotation.*;
11
12import java.util.HashMap;
13import java.util.Map;
14
15@RestController
16@RequestMapping("/auth")
17public class AuthController {
18
19 @Autowired
20 private IUserService userService;
21
22 @Autowired
23 private PasswordEncoder passwordEncoder;
24
25 @Autowired
26 private JwtUtil jwtUtil;
27
wuchimedes18addec2025-04-03 17:59:02 +080028 @Autowired
29 RedisTemplate<String, Object> redisTemplate;
30
wuchimedes079c1632025-04-02 22:01:20 +080031 // 用户注册
32 @PostMapping("/register")
33 public ResponseEntity<?> register(@RequestBody User user) {
34 if (userService.getUserByName(user.getUserName()) != null) {
35 return ResponseEntity.badRequest().body("用户名已存在");
36 }
37 userService.registerUser(user);
38 return ResponseEntity.ok("注册成功");
39 }
40
41 // 用户登录
42 @PostMapping("/login")
43 public ResponseEntity<?> login(@RequestBody User user) {
44 User existingUser = userService.getUserByEmail(user.getEmail());
45 if (existingUser == null || !passwordEncoder.matches(user.getPassword(), existingUser.getPassword())) {
46 return ResponseEntity.badRequest().body("用户名或密码错误");
47 }
48 String token = jwtUtil.generateToken(existingUser.getUserName());
49 Map<String, String> response = new HashMap<>();
50 response.put("token", token);
51 return ResponseEntity.ok(response);
52 }
wuchimedes18addec2025-04-03 17:59:02 +080053
54 @GetMapping("/test_redis")
55 public ResponseEntity<?> testRedis() {
56 redisTemplate.opsForValue().get("test");
57 return ResponseEntity.ok("test redis ok");
58 }
wuchimedes079c1632025-04-02 22:01:20 +080059}