Spring Boot

[OAuth] OAuth ์˜์กด์„ฑ ์ถ”๊ฐ€, ์ฟ ํ‚ค ๊ด€๋ฆฌ ํด๋ž˜์Šค ๊ตฌํ˜„ํ•˜๊ธฐ

์šฐ์ฃผ๋ฌผ๊ณ ๊ธฐ 2025. 5. 8. 12:21
๋ฐ˜์‘ํ˜•

 

์šฐ์„  ์ง€๋‚œ๋ฒˆ์— ๋ฐ›์•˜๋˜

๊ตฌ๊ธ€ ํด๋ผ์ด์–ธํŠธID๋ž‘ ์‹œํฌ๋ฆฟํ‚ค, DB ์„ค์ • ๋น„๋ฒˆ ๋ชจ๋‘

.env ํŒŒ์ผ๋กœ ๋นผ๋’€๊ณ  gitignore์— ์„ค์ •๊นŒ์ง€ ํ•ด๋‘ .

 

์ด์ œ ์ฟ ํ‚ค ๊ด€๋ฆฌ ํด๋ž˜์Šค ๊ตฌํ˜„ํ•˜๊ณ ,

OAuth์—์„œ ์ œ๊ณต๋ฐ›์€ ์‚ฌ์šฉ์ž ์ •๋ณด ๊ฐ€์ ธ์˜ค๋Š” ์—ญํ•  ํ•˜๋Š” ์„œ๋น„์Šค ๋งŒ๋“ค๊ฒ ใ…‡ใ…

 

 

build.gradle์— oauth2-client ์˜์กด์„ฑ ์ถ”๊ฐ€

 

implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'

 

 

 

 

 

 


์ฟ ํ‚ค ๊ด€๋ฆฌ ํด๋ž˜์Šค ๊ตฌํ˜„ํ•˜๊ธฐ

 

public class CookieUtil {

    // ์š”์ฒญ๊ฐ’(์ด๋ฆ„, ๊ฐ’, ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„)์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฟ ํ‚ค ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”์„œ๋“œ
    public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {
        Cookie cookie = new Cookie(name, value);
        cookie.setPath("/");
        cookie.setMaxAge(maxAge);
        response.addCookie(cookie);
    }

    // ์ฟ ํ‚ค ์ด๋ฆ„ ์ž…๋ ฅ ๋ฐ›์•„์„œ, ํ•ด๋‹น ์ฟ ํ‚ค ์‚ญ์ œ
    public static void deleteCookie(HttpServletRequest request, HttpServletResponse response, String name) {
        Cookie[] cookies = request.getCookies();
        if (cookies == null) {
            return;
        }

        for(Cookie cookie : cookies) {
            if(name.equals(cookie.getName())) {
                cookie.setValue("");
                cookie.setMaxAge(0);
                cookie.setPath("");
                response.addCookie(cookie);
            }
        }
    }

    // ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํ™”ํ•ด์„œ ์ฟ ํ‚ค์˜ ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜
    public static String serialize(Object obj) {
        return Base64.getUrlEncoder()
                .encodeToString(SerializationUtils.serialize(obj));
    }

    // ์ฟ ํ‚ค๋ฅผ ์—ญ์ง๋ ฌํ™”ํ•ด์„œ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜
    public static <T> T deserialize(Cookie cookie, Class<T> cls) {
        return cls.cast(
                SerializationUtils.deserialize(
                        Base64.getUrlDecoder().decode(cookie.getValue())
                )
        );
    }
}

 

deleteCookie() : 

์‹ค์ œ๋กœ ์ฟ ํ‚ค๋ฅผ ์‚ญ์ œํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์—†์–ด์„œ

ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋„˜์–ด์˜จ ์ฟ ํ‚ค๋ฅผ ๋นˆ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๊ณ 

๋งŒ๋ฃŒ์‹œ๊ฐ„์„ 0์œผ๋กœ ๋ฐ”๊ฟ”์„œ

์ฟ ํ‚ค๊ฐ€ ์žฌ์„ค์ • ๋˜์ž๋งˆ์ž ๋งŒ๋ฃŒ์ฒ˜๋ฆฌ๋˜๊ฒŒ ํ•จ.

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•