springboot编写登录注册代码
时间: 2024-01-13 08:08:35 浏览: 27
好的,下面是一个简单的 Spring Boot 登录注册示例:
首先,我们需要创建一个 User 实体类:
```java
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(nullable = false, unique = true)
private String email;
@Column(nullable = false)
private String password;
// getters and setters
}
```
然后,我们需要创建一个 UserRepository 接口来处理用户数据的持久化:
```java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
User findByEmail(String email);
}
```
接下来,我们需要创建一个 UserService 类来处理用户的注册和登录:
```java
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User register(User user) {
user.setPassword(new BCryptPasswordEncoder().encode(user.getPassword()));
return userRepository.save(user);
}
public User login(String email, String password) {
User user = userRepository.findByEmail(email);
if (user == null) {
return null;
}
if (new BCryptPasswordEncoder().matches(password, user.getPassword())) {
return user;
} else {
return null;
}
}
}
```
最后,我们需要创建一个 UserController 类来处理用户的 HTTP 请求:
```java
@RestController
@RequestMapping("/api")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/register")
public User register(@RequestBody User user) {
return userService.register(user);
}
@PostMapping("/login")
public User login(@RequestParam String email, @RequestParam String password) {
return userService.login(email, password);
}
}
```
现在,我们就可以使用 POST 请求来注册和登录用户了:
```
POST /api/register
{
"email": "test@example.com",
"password": "password"
}
POST /api/login?email=test@example.com&password=password
```