要实现用户注册功能,可以按照以下步骤进行:
创建一个用户实体类,包含用户的基本信息,例如用户名、密码、邮箱等。@Entity@Table(name = "users")public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique = true) private String username; private String password; @Column(unique = true) private String email; // 省略其他属性和方法}创建一个用户注册的请求类,用于接收用户提交的注册信息。public class SignupRequest { private String username; private String password; private String email; // 省略getter和setter方法}创建一个用户服务类,用于处理用户注册逻辑。@Servicepublic class UserService { @Autowired private UserRepository userRepository; public void registerUser(SignupRequest signupRequest) { // 创建新用户 User user = new User(); user.setUsername(signupRequest.getUsername()); user.setPassword(signupRequest.getPassword()); user.setEmail(signupRequest.getEmail()); // 保存用户到数据库 userRepository.save(user); }}创建一个用户控制器,用于接收用户注册请求。@RestController@RequestMapping("/api/auth")public class AuthController { @Autowired private UserService userService; @PostMapping("/signup") public ResponseEntity<String> signup(@RequestBody SignupRequest signupRequest) { userService.registerUser(signupRequest); return ResponseEntity.ok("User registered successfully!"); }}配置JWT认证和权限控制,确保只有认证成功的用户才能访问注册接口。@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Autowired private JwtRequestFilter jwtRequestFilter; @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable() .authorizeRequests() .antMatchers("/api/auth/signup").permitAll() .anyRequest().authenticated() .and().sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS); http.addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class); }}这样,当用户发送POST请求到/api/auth/signup接口时,会调用AuthController的signup方法来处理用户注册请求。在该方法中,会调用UserService的registerUser方法来完成实际的注册逻辑。