Spring + Mybatis(mysql) 회원가입시 이메일 인증기능 구현하기
Mybatis 설정과 관련된 설명은 생략하고 메일기능과 관련된 것만
블로깅하려고 한다.
우선 역시 실행영상!!!
아래는 테이블 구조
비밀번호 컬럼을 varchar로 그대로 사용하면 보안에 문제가 있지만,
나중에 완성도를 올리기위해서 바꿔줘야지 생각만,,
create table member(
m_no int auto_increment primary key,
m_name varchar(20),
m_id varchar(30),
m_password varchar(30),
m_address_postcode varchar(20),
m_address_primary varchar(60),
m_address_detail varchar(60),
m_email_id varchar(30),
m_email_domain varchar(50),
m_cellphone1 varchar(5),
m_cellphone2 smallint,
m_cellphone3 smallint,
m_phoneNum1 varchar(5),
m_phoneNum2 smallint,
m_phoneNum3 smallint,
m_birth date,
m_verify char(1) not null default 'n'
)engine=InnoDB character set=utf8;
먼저 pom.xml에 아래와 같이 라이브러리 추가

그리고 web.xml에서 DispatcherServlet 등록

/WEB-INF/config/presentation-layer.xml에 아래와 같이 해준다.
개인 구글 아이디, 비번이 있어서 스샷으로 안하고 Text로 직접,,
<!-- 메일보내기 -->
<bean id="mailSender" class = "org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="구글메일아이디" />
<property name="password" value="구글메일비밀번호" />
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
아래와 같이 메일 핸들러클래스를 작성한다.
다른사람의 블로그를 참고했는데, 링크가 기억이 안난다,, ㅜ


Controller구조

아래는 회원가입을 할 경우 해당 이메일로 인증을 요구하는 링크를 첨부한 이메일을
발송한다.

받은 이메일에 링크를 누르면 아래의 메소드로 들어가서 처리한다.
member table에 verify라는 컬럼의 default값은 'n'이다.
링크들 누르면 값을 'n'에서 'y'로 바꿔주게끔 한다.

로그인시도를 할경우 verify컬럼의 값이 'y'가 아니면 인증이 되지 않았다고,
alert를 띄워주게끔 코드를 짰다.

아래는 멤버서비스와 멤버다오의 구조,,
전체코드는 다 올리수 없어서

블로깅하려고 한다.
우선 역시 실행영상!!!
아래는 테이블 구조
비밀번호 컬럼을 varchar로 그대로 사용하면 보안에 문제가 있지만,
나중에 완성도를 올리기위해서 바꿔줘야지 생각만,,
create table member(
m_no int auto_increment primary key,
m_name varchar(20),
m_id varchar(30),
m_password varchar(30),
m_address_postcode varchar(20),
m_address_primary varchar(60),
m_address_detail varchar(60),
m_email_id varchar(30),
m_email_domain varchar(50),
m_cellphone1 varchar(5),
m_cellphone2 smallint,
m_cellphone3 smallint,
m_phoneNum1 varchar(5),
m_phoneNum2 smallint,
m_phoneNum3 smallint,
m_birth date,
m_verify char(1) not null default 'n'
)engine=InnoDB character set=utf8;
먼저 pom.xml에 아래와 같이 라이브러리 추가

그리고 web.xml에서 DispatcherServlet 등록

/WEB-INF/config/presentation-layer.xml에 아래와 같이 해준다.
개인 구글 아이디, 비번이 있어서 스샷으로 안하고 Text로 직접,,
<!-- 메일보내기 -->
<bean id="mailSender" class = "org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="587" />
<property name="username" value="구글메일아이디" />
<property name="password" value="구글메일비밀번호" />
<property name="javaMailProperties">
<props>
<prop key="mail.transport.protocol">smtp</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
아래와 같이 메일 핸들러클래스를 작성한다.
다른사람의 블로그를 참고했는데, 링크가 기억이 안난다,, ㅜ


Controller구조

아래는 회원가입을 할 경우 해당 이메일로 인증을 요구하는 링크를 첨부한 이메일을
발송한다.

받은 이메일에 링크를 누르면 아래의 메소드로 들어가서 처리한다.
member table에 verify라는 컬럼의 default값은 'n'이다.
링크들 누르면 값을 'n'에서 'y'로 바꿔주게끔 한다.

로그인시도를 할경우 verify컬럼의 값이 'y'가 아니면 인증이 되지 않았다고,
alert를 띄워주게끔 코드를 짰다.

아래는 멤버서비스와 멤버다오의 구조,,
전체코드는 다 올리수 없어서


안녕하세요. 현재 spring 공부하고 있는습니다. 저도 이메일 인증 관련하여 구현해보고 싶어서 따라하고 있는데 혹시 ServiceImpl과 Dao, mapper 코드좀 공유 해주실수 있으실까요?ㅜㅜ
답글삭제https://github.com/ndgndg91/BalPoom
삭제2년도 더 넘은 코드라서 매우 지저분합니다. : )
안녕하세요 그림속 의류사진을 찾다가 여기까지 들어오게되었습니다!
답글삭제패션쪽 일을 하고있구요 액자로 만들고싶어서요
옷걸이에 걸려져있는 네오프렌 원단 속 사진 실례가안된다면 혹시 메일로 부탁드려도될가요?
duke3444@naver.com 입니다
꼭좀부탁드려보겠습니다
안녕하세요 혹시 저도 ServiceImpl과 Dao, mapper 코드 공유해주실수 있으실까요,,? 저 링크로는 404 떠서요,,,ㅠㅠ
답글삭제아 죄송합니다. 제가 얼마전에 github 정리하면서 해당 레포지토리를 삭제해서요;;
삭제