# BONE FLOW #024 端末登録QRコード：Web画面内表示 / v1.0.297

v1.0.295ではQR発行をPowerShellへ移し、公開Web画面から表示ボタンが消えていた。ユーザー指定の「サーバー側ではQR表示、ほかの端末ではQR取り込み」を満たせていなかった。

v1.0.297では `sqlite-merge.html` に「端末登録QRコードを表示」を戻した。サーバー本体でそのURLを開いた場合のみ、Python同期APIと同時に起動する別ポート `127.0.0.1:8766` の管理APIから2分間有効・1回限りのQR SVGを取得して画面内に表示する。管理者キーはブラウザへ送らない。スマホ・PCは従来のカメラまたは標準カメラのURLで登録する。

## セキュリティ
- 公開同期API `127.0.0.1:8765` は Apache HTTPSプロキシで公開するが、管理QR APIの `127.0.0.1:8766` はApacheに**絶対プロキシしない**。
- 管理QR API はloopback上でのみ listen し、Origin/Host/カスタムヘッダー/POST JSONを検証する。
- URLのホスト名 `pcsr.net` だけを管理者認証として使用しない。サーバー本体以外のPCでWeb画面を開いてもQR発行は不可。
- Edge/Chromeのローカルネットワークアクセス権限が必要なことがある。
- QRには管理者の長期キーは含まれない。

## 運用上の残課題
- Windowsサーバー用の統合インストーラは、同期APIが未起動であれば現在のログインユーザーでバックグラウンド起動し、ポート8765/8766を検査する。片方だけ起動していると旧版混在の危険があるため停止する。既に両方が起動している場合、プロセスの版数までは検査していない。Windows起動後の自動再起動設定とApache HTTPSプロキシは別途必要。
- 手元のLinux環境でNode/Pythonの単体・HTTPテストを実行。Windowsインストーラ、Edgeの実QR表示、pcsr.net本番、スマホ登録の実機検証は未完了。
- スマホでQRが表示されないのは正常。QRはサーバー端末で発行し、スマホで読み取る。
- `127.0.0.1` は「画面を開いているPC自身」を指す。サーバー以外のPCから `pcsr.net` を開いてもサーバー管理接続にはならない。
