자동 로그인 토큰 발급해주기
한 번 로그인하면 일정 시간동안
로그인 로직이 없어도 로그인 유지가 되도록 하려면
자동 로그인 기능이 필요합니다.
일단 spring security가 권장하는 사양으로
oracle 테이블을 생성해보겠습니다.
-- 스프링 시큐리티 공식 문서 권장사항 CREATE문
CREATE TABLE persistent_logins (
username varchar(64) not null,
series varchar(64) primary key,
token varchar(64) not null,
last_used timestamp not null
);
commit;
SELECT * FROM persistent_logins;
생성이 완료되었으면 이제 security-context.xml의 security:http 태그 사이에
security:remember-me를 추가해주어야 합니다.
token-validity-second는 초 단위 시간을 얼마나 저장할 지
설정해주는 것 입니다. 저는 일단 일주일 자동 로그인을 설정했습니다.
자동 로그인 체크박스를 만들고
로그인 했을 때 remember-me가 발급되는지 확인을 해봅니다.
자동로그인 체크박스를 체크하고 로그인했을 때 DB와 브라우저에
토큰이 저장되는 것을 확인할 수 있습니다.
서버를 껐다가 켜도 토큰이 살아있으면 설정이 완료된 것 입니다.
토큰 파기하기
로그아웃 시에 remember-me 쿠키를 파기해주려면
security-context에 쿠키를 파기하는 태그를 설정해주어야 합니다.
토큰 파기를 설정한 후 로그아웃했을 때 토큰이 사라지면
완성입니다.