[etc] Logout ํ›„ ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ฐฉ์ง€ - BF Cache

2024. 2. 23. 14:48ยท๐Ÿฅ Web/โ” Back-end | etc.
728x90

๋ฌธ์ œ

  • logout์„ ํ•œ ๋’ค์— ๋กœ๊ทธ์ธ ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋กœ ๋’ค๋กœ ๊ฐ€๊ธฐ๋ฅผ ๋ˆŒ๋ €์„ ๋•Œ, ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋˜๋Š” ๋ฌธ์ œ
  • ๋ณด์•ˆ์ƒ์˜ ๊ฒฐํ•จ์œผ๋กœ ์ˆ˜์ •ํ•ด์•ผํ•˜๋Š” ๊ฒฝ์šฐ

์›์ธ

  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ด€๋ฆฌํ•˜๋Š” BF Cache(Back-Forward Cache)
    • ์›น ํŽ˜์ด์ง€๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฉด ํ•ด๋‹น ํŽ˜์ด์ง€์˜ css/html/javascript/image ๋“ฑ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋ฅผ ์บ์‹œ์— ์ €์žฅ
    • ๋’ค๋กœ๊ฐ€๊ธฐ / ์•ž์œผ๋กœ ๊ฐ€๊ธฐ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์„œ๋ฒ„์— ๋‹ค์‹œ ์š”์ฒญํ•˜์ง€ ์•Š๊ณ  ์บ์‹œ ๋ฆฌ์†Œ์Šค ํ™œ์šฉํ•ด์„œ ๋กœ๋”ฉ
  • ๋กœ๊ทธ์•„์›ƒ ์ดํ›„์—๋„ BF Cache๊ฐ€ ๋‚จ์•„์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์‹œ ํŽ˜์ด์ง€๊ฐ€ ๋ณด์ผ ์ˆ˜ ์žˆ์Œ

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•(Fast API ๊ธฐ์ค€)

  • Jinja Template response ์‚ฌ์šฉ
  • ๋กœ๊ทธ์ธ ํ•ด์•ผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŽ˜์ด์ง€์— ์ ‘์† ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ๋ผ์šฐํ„ฐ์—์„œ access token ํ™•์ธ
  • ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ์ ‘์† ํ—ˆ์šฉ, ์—†๋Š” ๊ฒฝ์šฐ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ redirection
  • ํด๋ผ์ด์–ธํŠธ์— reponse๋ฅผ ๋ณด๋‚ผ ๋•Œ ๋กœ๊ทธ์ธ ํ•ด์•ผํ•˜๋Š” ํŽ˜์ด์ง€์˜ BF Cache๋ฅผ ๋น„ํ™œ์„ฑํ™”
  • response header์— ํฌํ•จ๋จ
@app.get("/")
def mainPage(request: Request):
    if "access_token" in request.cookies:
        token = utils.get_token(request.cookies.get("access_token"))
        auth = utils.get_current_user(token)
        data = ...
        return templates.TemplateResponse(
            "main.html",
            context={"request": request, "data": data},
            headers={
                "Cache-Control": "no-cache, no-store, must-revalidate",
                "Pragma": "no-cache",
                "Expires": "Sat, 6 May 1995 12:00:00 GMT",
            },
        )
    else:
        return RedirectResponse(url="/login")

 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿฅ Web > โ” Back-end | etc.' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[PostgreSQL] Windows ์™ธ๋ถ€ ์ ‘์† ํ—ˆ์šฉ ์„ค์ • ๋ฐ ์™ธ๋ถ€ ์ ‘์† ๋ฐฉ๋ฒ•  (1) 2023.11.03
[Elasticsearch] Index Template ๊ตฌ์„ฑํ•˜๊ธฐ with Kibana & Logstash (2) - Mapping ๊ธฐ์ดˆ  (0) 2023.07.14
[Elasticsearch] Index Template ๊ตฌ์„ฑํ•˜๊ธฐ with Kibana & Logstash (1) - Setting  (0) 2023.07.06
[Elasticsearch] Logstash๋ฅผ ํ†ตํ•ด PostgreSQL๊ณผ Elastic Stack ์—ฐ๋™ํ•˜๊ธฐ  (0) 2023.06.29
[Elasticsearch] Logstash ์‚ฌ์šฉํ•ด๋ณด๊ธฐ  (0) 2023.06.29
'๐Ÿฅ Web/โ” Back-end | etc.' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [PostgreSQL] Windows ์™ธ๋ถ€ ์ ‘์† ํ—ˆ์šฉ ์„ค์ • ๋ฐ ์™ธ๋ถ€ ์ ‘์† ๋ฐฉ๋ฒ•
  • [Elasticsearch] Index Template ๊ตฌ์„ฑํ•˜๊ธฐ with Kibana & Logstash (2) - Mapping ๊ธฐ์ดˆ
  • [Elasticsearch] Index Template ๊ตฌ์„ฑํ•˜๊ธฐ with Kibana & Logstash (1) - Setting
  • [Elasticsearch] Logstash๋ฅผ ํ†ตํ•ด PostgreSQL๊ณผ Elastic Stack ์—ฐ๋™ํ•˜๊ธฐ
darly213
darly213
ํ˜ธ๋ฝํ˜ธ๋ฝํ•˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ณด์ž
  • darly213
    ERROR DENY
    darly213
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
      • ๐Ÿฌ ML & Data (50)
        • ๐ŸŒŠ Computer Vision (2)
        • ๐Ÿ“ฎ Reinforcement Learning (12)
        • ๐Ÿ“˜ ๋…ผ๋ฌธ & ๋ชจ๋ธ ๋ฆฌ๋ทฐ (8)
        • ๐Ÿฆ„ ๋ผ์ดํŠธ ๋”ฅ๋Ÿฌ๋‹ (3)
        • โ” Q & etc. (5)
        • ๐ŸŽซ ๋ผ์ดํŠธ ๋จธ์‹ ๋Ÿฌ๋‹ (20)
      • ๐Ÿฅ Web (21)
        • โšก Back-end | FastAPI (2)
        • โ›… Back-end | Spring (5)
        • โ” Back-end | etc. (9)
        • ๐ŸŽจ Front-end (4)
      • ๐ŸŽผ Project (8)
        • ๐ŸงŠ Monitoring System (8)
      • ๐Ÿˆ Algorithm (0)
      • ๐Ÿ”ฎ CS (2)
      • ๐Ÿณ Docker & Kubernetes (3)
      • ๐ŸŒˆ DEEEEEBUG (2)
      • ๐ŸŒ  etc. (8)
      • ๐Ÿ˜ผ ์‚ฌ๋‹ด (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ๋ฐฉ๋ช…๋ก
    • GitHub
    • Notion
    • LinkedIn
  • ๋งํฌ

    • Github
    • Notion
  • ๊ณต์ง€์‚ฌํ•ญ

    • Contact ME!
  • 250x250
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
darly213
[etc] Logout ํ›„ ๋’ค๋กœ ๊ฐ€๊ธฐ ๋ฐฉ์ง€ - BF Cache
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”