写一段登录功能的SpringBoot代码
时间: 2024-05-03 07:07:05 浏览: 17
以下是一个简单的登录功能的SpringBoot代码:
@Controller
public class LoginController {
@Autowired
private UserService userService;
@GetMapping("/login")
public String showLoginForm(Model model) {
model.addAttribute("user", new User());
return "login";
}
@PostMapping("/login")
public String login(@ModelAttribute("user") User user, HttpSession session, Model model) {
User existingUser = userService.findUserByUsernameAndPassword(user.getUsername(), user.getPassword());
if(existingUser != null) {
session.setAttribute("user", existingUser);
return "redirect:/home";
} else {
model.addAttribute("error", "Invalid username or password");
return "login";
}
}
@GetMapping("/logout")
public String logout(HttpSession session) {
session.invalidate();
return "redirect:/login";
}
}
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public User findUserByUsernameAndPassword(String username, String password) {
return userRepository.findByUsernameAndPassword(username, password);
}
}
@Repository
public interface UserRepository extends CrudRepository<User, Long> {
User findByUsernameAndPassword(String username, String password);
}
在这个示例中,我们有一个LoginController,一个UserService和一个UserRepository。LoginController处理登录和注销请求,UserService处理用户身份验证,UserRepository处理与数据库的交互。
在/showLoginForm中,我们将一个新的User对象添加到模型中,并返回login视图。在/login中,我们使用UserService来查找具有给定用户名和密码的现有用户。如果找到了现有用户,则将其添加到会话中,并将用户重定向到/home。否则,我们将错误消息添加到模型中,并返回login视图。
在/logout中,我们使会话无效,并将用户重定向到/login。
请注意,这只是一个简单的示例。在实际应用中,您需要更复杂的身份验证和用户管理。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)