Cloudflare WorkersのランタイムはNodejsではない。Web Standards API (Crypto, atob, btoa, ... )で実装する必要がある。
有効期限を持ち、MACで改ざんされたら分かるようにしたトークンを発行する。このトークンをクッキーに設定して、ブラウザとサーバーでの連続したラウンドトリップ間にセッションを作る。
この実装ではHMACのハッシュアルゴリズムにはSHA256を選択した。
キーの長さは32bitで十分らしい timing attackへの対策、定数時間でのハッシュ値比較、web cryptoのhmac verifyはどうなってる?