認証は解決済みに感じられることの1つだ——そうでないコードベースを引き継ぐまでは。Leverage OJの書き換えを始めたとき、認証システムはトレンチコートを着た3つの別々の問題だった:PM2で壊れるセッションセットアップ、独自の並行認証宇宙に分岐したContestUserコンセプト、そして1つの設定漏洩で完全な認証情報ダンプになるパスワードハッシュスキーム。
これらは最初は明らかではなかった。システムは動作していた——ユーザーはログインでき、セッションは永続化し、コンテストは実行された。しかし「動作する」と「正しい」は別物であり、よく見れば見るほど、もはや有効でない仮定を蓄積したシステムが見えてきた。
約4分
