我目前正在使用Spring Boot和Angular创建一个应用程序,为此我需要一个用户。我已经创建了可以在数据库中保存散列的密码。这很好。但我不知道,如果我现在的解决方案是好的。我也不知道如何登录用户。有人知道我该怎么做吗?
用户控件这里我发送我的HTTP请求。这里我加密密码并发送HTTP响应。
@Bean
public PasswordEncoder encoder() {
return new BCryptPasswordEncoder();
}
@Autowired
private PasswordEncoder passwordEncoder;
@PostMapping
public ResponseEntity<String> registerNewUserAccount(@Validated @RequestBody User accountDto) {
accountDto.setPassword(passwordEncoder.encode(accountDto.getPassword()));
if (userService.save(accountDto) == null) {
return new ResponseEntity<>("E-Mail already exists", HttpStatus.CONFLICT);
}
return new ResponseEntity<>(null, HttpStatus.OK);
}
UserServiceImpl在这里我检查,如果电子邮件已经存在。findByEmail方法在UserRepository中。
private final UserRepository userRepository;
public UserServiceImpl(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public User save(User object) {
if (userRepository.findByEmail(object.getEmail()) == null) {
return userRepository.save(object);
}
return null;
}
UserService(接口)这是最基本的。
public interface UserService extends CrudService<User, Integer> {
User save(User object);
List<User> findAll();
void deleteById(Integer id);
User findById(Integer id);
void delete(User object);
}
https://github.com/arbiss1/SpringBootJpa-and-Security/tree/main/src/main/java/net/codejava
这是我的spring安全实现的repo。一步一步地去做,你就会得到你想要的。你的问题需要很多解释。