Liquidsのロゴ Liquids

1

FastAPIでCookieを保存する方法

HTTP
Python
FastAPI

CookieはHTTPレスポンスのヘッダーにSet-Cookieを使用することで、ブラウザに保存することができます。

レスポンスヘッダーへのSet-Cookieの付与をFastAPIで行うには、Responseset_cookie()を使用します。

Responseを使用することで、レスポンスのより細かな操作が可能です。

下記のコードのエンドポイントにアクセスするとCookieがブラウザに保存されるはずです。Cookieは開発者ツールから確認ができます。

from fastapi import FastAPI, Response

app = FastAPI()

@app.get('/')
def index(response: Response) -> str:
    response.set_cookie(key="sample_cookie", value="COOKIE_FROM_FASTAPI")
    return 'COOKIE RESPONSE'

Cookieにはいくつかの属性があり、それらを設定することでCookieの挙動を操作することができます。

set_cookie()でCookieの属性の設定も可能です。

利用可能な引数とその定義を紹介します。

HTTP属性 set_cookieでの引数名 デフォルト値
MaxAge max_age int None
Expires expires datetime str
Path path str None
Domain domain str None
Secure secure bool False
HttpOnly httponly bool False
SameSite samesite Literal[”lax”, “strict”, “none”] None

例として、MaxAge属性とHttpOnly属性を設定してみます。

from fastapi import FastAPI, Response

app = FastAPI()

@app.get('/')
def index(response: Response) -> str:
    response.set_cookie(
        key="sample_cookie", 
        value="COOKIE_FROM_FASTAPI",
        max_age=3600,
        httponly=True
        )
    return 'COOKIE RESPONSE'

開発者ツールで確認してみると、Cookieの属性が指定した通り設定されていました。


Liquidsのロゴ Liquids

Liquidsは誰でも投稿・編集ができる技術Wikiコミュニティ📝です。

あなたもLiquidsで技術Wikiを
書いてみませんか?