[라라벨]

폼 전송 완료 페이지에서 새로고침하면 이메일이 반복 발송되는 버그가 있었습니다.

“폼 - 이메일 전송과 완료 페이지” 순으로, 완료 페이지 로딩 로직과 이메일 전송 로직이 합쳐져 있어서 발생한 문제입니다.

“폼 - 이메일 전송 - 완료 페이지” 순서로 로직을 나누면 해결됩니다.


그런데 완료 페이지에는 작성자명을 노출해야 했습니다.

이를 위해 URL에 id 같은 식별자를 넣으면 URL에 개인정보가 노출되죠.

해결을 위해 만료 시간을 정하면 될 텐데 이걸 위해 그런 수고를 들이는 건 비용 대비 효율이 떨어진다고 생각했습니다.

쓸데없이 복잡성을 늘리는 것 같기도 했고요.


검토한 대안. 완료 페이지를 포스트로 호출하면 URL에 식별자가 노출되지도 않고, 시간이 지나면 페이지가 만료되기도 합니다.

이러려면 이메일 전송 후 HTML 페이지를 불러와 POST method form으로 완료 페이지를 호출해야 합니다.

그러나 이건 우아하지 않아 보였습니다.


해결. 라라벨은 리디렉트시 1회용 세션값을 들고갈 수 있는 기능을 제공합니다.

1. 폼을 포스트로 넘긴다

2. 이메일 전송후 id를 들고 완료 페이지로 리디렉트

3. 완료 페이지에서 id를 꺼내 정보 노출

4. 새로고침하면 이전 페이지로 보낸다

다른 분들은 어떤 해결책을 사용하시는지 궁금하네요.


다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 4월 11일 오전 6:29

 • 

저장 1조회 1,085

댓글 2