エンジニアが新婦のために結婚式にITで全力で貢献しようとした話【連載第11回】「祭りのあと」を設計する
NFC実装Tips
結婚式でNFCタグを活用する際の実装ポイントをまとめます。
NFCタグの選定
NTAG215またはNTAG216を推奨します。URLを書き込むだけなら容量は十分です。カジノチップ型のケースに埋め込むことで、見た目の体験も向上します。
URL設計
https://example.com/c/{CHIP_CODE}
CHIP_CODE にはUUIDを含めて推測困難にします。
-- 40枚分のチップを生成
INSERT INTO chips (code)
SELECT 'CHIP-' || LPAD(n::TEXT, 3, '0') || '-' || gen_random_uuid()
FROM generate_series(1, 40) AS n
ON CONFLICT (code) DO NOTHING;
イベント後のルーティング
同じNFCタグを、イベントのフェーズによって異なるページにルーティングできます。
- イベント前:
/onboarding/chip(登録ページ) - イベント中:
/casino(ゲームページ) - イベント後:
/thank-you(サンキューページ)
サーバー側でイベントフェーズを管理し、同一URLでもリダイレクト先を切り替える設計が有効です。
セキュリティ
- 1ユーザー1チップの制約を設ける(同一ユーザーが複数チップを紐付けることを防止)
- チップ紐付け処理はレースコンディション対策を実施(
SELECT FOR UPDATEを使用) - UUIDを含むコードで推測を防止
この記事の関連情報・背景解説はブログでも公開しています。
エンジニアが新婦のために結婚式にITで全力で貢献しようとした話【連載第11回】「祭りのあと」を設計する - Secure Auto Lab