IoT+WEBのためのホームサーバ計画の実装編15。HomeServerとUSERを関連付ける。
HomeServerとUSERとの関連付け
そうです。
今回の大きな趣旨のひとつとして、
つないだらそのまま使える
というのは大きなポイントで。
ということは、つないでる時点では、どのユーザにも関連付けられていないのは明白。
ということは、ユーザの方から固有情報をなんらか入力してやらなきゃいけない。
ということは、HomeServer側になんらか表示させるってことで落ち着きます。
そう、無線ルータにSSID(とPIN)が書いて貼ってあるかのように。
ではシナリオを考えましょ。
シナリオ
ってことで、こうです。
●HomeServerをつなぐ➡
●LCDディスプレイまたはM5StackまたはM5StickCの表示でIDとPINを確認する。➡
●WEBにログインする➡
●ID一覧表示、または、IDの直接入力をする➡
●PINを入力し、HomeServerとユーザとの関係を確立する。
まぁこんなとこでしょ。
まぁIDとPINなんて書きましたが、要するに、
42492a34-4f23-2a86-1234-5db419556b18
なんていうIDをサーバ側からHomeServerへ発行してるので、
42492a34-4f23-2a86-1234
がキーで、
5db419556b18
がPINあたりってことでいいっすかね。
まぁPINも変更可能にしてあげてれば、問題無い気がします。
もうひとつの方法
シナリオを書いときながら、いきなりもう一つの方法です。
それはこんな感じです。
但し、『スマフォもHomeServerと同じLANにいる』
という前提です。
同じLANという言い方はぜんぜん正確で無いですが、
要するに、『外へ出ていくときのグローバルIPが、HomeServerと同じ』
という意味です。
早い話、、『ブロードバンドルータ+無線LAN 』 の環境で、HomeServer有線LAN、スマフォは無線LANとか、
スマフォじゃなくて、PCが無線LANとか有線LANとか、そんな環境です。
●HomeServerをつなぐ
●直後にWebにログインする
●GlobbalIPが同じで、**分以内であれば、ユーザと判断し、勝手に関連付ける
まぁこんな感じです。もちろん、
『HomeServerが 無線LANじゃぁダメか?』
っていうのもあるのですが、
ひとつは、安定性の問題。
ひとつは、セパレート機能(無線LAN同志でつながらなくしてる)の問題。
ってのがあるんで。
DB管理しましょ
ユーザはDB管理したので、関連付けもDB管理しないとですねー。
話を整理するとこんなです。
USER-LSITがあって、HomeServerのID-LISTがあって、
あとは、、その対応のテーブルを持てばいいっすね。
あと、考えられることは、、HomeServerとユーザは、1対多になると思うので、
【管理者】フラグがあったり、、【仮登録】フラグがあったり、
まぁ例によって、登録日、更新日あたりもいれときましょう。
そうすると、
[id] auto
[username] text
[HomeServerID] text
[registdate] int
[lastdate] int
[regist] int
[note] text
[etc] text
雑ですが、、こんなもんかなー。
良く考えたら、HomeServerのID登録とかまだだったぞっ
そうでした。
そうすると、、
[id] auto
[homeserverid] text
[homeserverpin] text
[registdate] int
[lastdate] int
[regist] int
[script] text
[note] text
[etc] text
まぁこれrも雑だな^^;
HomeServerのID登録はいつ行われるかというとっ、、
それはもちろん、起動時にWebSocket通信をして、そこで登録です。
うぅーーん。更新とかどうしましょね。
厳密には、[script]にクライアントに紐づいてるIoTコントローラの情報も含めるという考え方もあるのですが、
その都度取りに行くというのでもよさそうな気もするので、
それは両方やってみて決めましょ。
基本的には、
あれこれ綿密に設計するより、やってみて決める
でいいかと思うんですよね(o^^o)