Cloudflare WorkersでCookieを使う方法
エッジサーバーコンピューティングのCloudflare WorkersでCookieを使う方法をまとめました。
公開日:0001年1月1日
CookieをHTTPヘッダから取得する
CookieはHTTPヘッダで送信されてくるので、そちらをCloudflare Workersで読み取ります。Cloudflare Workersでは、「request」オブジェクトにWeb APIのheadersオブジェクトが収容されているので、getメソッドで取得可能です。
const cookieString = request.headers.get("Cookie")
Cookieを分解する
HTTPヘッダーのCookie情報は、「xxx = yyy」という文字列で収容されているので、そちらを検索しやすいように連想配列に変換します。
使いやすいように関数にしました。
function getCookie(request, name) {
let result = ""
const cookieString = request.headers.get("Cookie")
if (cookieString) {
const cookies = cookieString.split(";")
cookies.forEach(cookie => {
const cookiePair = cookie.split("=", 2)
const cookieName = cookiePair[0].trim()
if (cookieName === name) {
const cookieVal = cookiePair[1]
result = cookieVal
}
})
}
return result
}
あとは、Cloudflareの実際の処理を書く「handleRequest」で「getCookie」関数を呼び出します。
async function handleRequest(request) {
const COOKIE_NAME = "hogehoge"
const cookie = getCookie(request, COOKIE_NAME);
if (cookie) {
// 何かの処理
}else{
// 何かの処理
}
}
こんな感じでCookieの値によって処理を分割できます。
Netlifyなどの静的サイト・ホスティングだと、通常のApache・NginxのWebサーバーのようにCookieの値によって処理を分割できないので、Cloudflare Workersに任せてしまえば、サーバーレスでレンタルサーバーやVPSと同じようなことができてしまいますね。
:
新着ノート
-
NUXT3
公開日:2023年2月16日
-
NUXT3
公開日:2023年1月30日
新着コード
-
Vue.js
公開日:2022年4月18日
-
Vue.js
公開日:2022年4月13日