package com.takensoft.cms.token.service; import com.takensoft.cms.token.vo.RefreshTknVO; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; /** * @author takensoft * @since 2024.04.01 * @modification * since | author | description * 2024.04.01 | takensoft | 최초 등록 * * RefreshToken 정보 관련 인터페이스 */ public interface RefreshTokenService { /** * @param req - HTTP 요청 객체 * @param res - HTTP 응답 객체 * @param refresh - RefreshToken 정보 * @param expiredMs - 토큰 만료 시간 (밀리초) * @return int - refresh token 등록결과 * * refresh token 등록 */ public int saveRefreshToken(HttpServletRequest req, HttpServletResponse res, RefreshTknVO refresh, long expiredMs); /** * @param req - HTTP 요청 객체 * @param res - HTTP 응답 객체 * @return int - refresh token 삭제 결과 * * refresh token 삭제 프로세스 (로그아웃) */ public int deleteByRefresh(HttpServletRequest req, HttpServletResponse res); /** * @param req - HTTP 요청 객체 * @param res - HTTP 응답 객체 * @return int - 토큰 재발급 결과 * * 토큰 재발급 */ public int tokenReissueProc(HttpServletRequest req, HttpServletResponse res); /** * @param req - HTTP 요청 객체 * @param refreshTknVO - RefreshToken 정보 * @return int - 토큰 삭제 결과 * * 토큰 삭제 */ public int delete(HttpServletRequest req, RefreshTknVO refreshTknVO); /** * @param req - HTTP 요청 객체 * @param refreshTknVO - RefreshToken 정보 * @return boolean - refresh token 등록 여부 * * refresh token 등록 여부 확인 */ public boolean findByCheckRefresh(HttpServletRequest req, RefreshTknVO refreshTknVO); /** * @return int - refresh token 전체 삭제 여부 * * refresh token 전체 삭제 */ public int deleteAll(); /** * @return String - 쿠키에 있는 refresh token 값 * @param req - HTTP 요청 객체 * 쿠키 내 refresh token 확인 */ public String getRefreshTokenFromCookie(HttpServletRequest req); }