스프링 부트를 사용하여 새로운 사용자 등록을 처리하는 내 RegisterController
에 몇 가지 방법이 있습니다.같은 컨트롤러에서 다른 메소드의 @RequestMapping 값을 얻으십시오.
createNewUser
메서드는 새 사용자를 데이터베이스에 저장하고 고유 토큰이있는 링크가 포함 된 확인 전자 메일을 보내는 작업입니다.
confirmUser
메서드는 확인 링크에 대한 GET 요청 처리를 처리합니다.
createNewUser
메서드의 @RequestMapping
값을 confirmUser
에 할당하는 방법이 있습니까? 이 값을 하드 코딩 대신 확인 링크를 생성하는 데 사용하고 싶습니다.
// Process form input data
@RequestMapping(value = "/register", method = RequestMethod.POST)
public ModelAndView createNewUser(@Valid User user, BindingResult bindingResult) {
}
// Process confirmation link
// Link in confirmation e-mail will be /registerConfirmation?token=UUID
@RequestMapping(value="/registerConfirmation", method = RequestMethod.GET)
public ModelAndView confirmUser(@RequestParam("token") String token) {
}
confirmUser 서비스를 createNewUser와 병합하지 않는 이유는 분명히 확인 응답을 반환하기 때문입니다. –
@PratikAmbani confirmUser()는 사용자가 전자 메일의 확인 링크를 클릭 할 때만 호출되어야하기 때문입니다. createNewUser() 메소드는 등록 양식을 성공적으로 채운 것입니다. –
BTW HTTP GET 요청에서 상태를 변경하는 것은 좋지 않습니다. DB에서 사용자 정보를 업데이트하여 확인했습니다. 따라서 'confirmUser'메서드를 HTTP POST로 변경하는 것이 좋습니다. . –