質問: 概念的な質問というか疑問なのですが、スマホからやりとりする際に自分がいま考えているロジックは、 前準備)スマホがuuidを作成してDBに登録 これの後に、スマホが通信をしたい場合 1)スマホが自分のuuidをDBに送信 2)DBはuuidが登録されているかどうかを調べ、登録されていれば10分以内しか通用しないキーを発行してスマホに返却 3)スマホはそのキーと一緒にゲームなどの更新データを送信 4)DBはキーがあるかどうかを調べ、キーがあれば更新データをDBに登録 といった流れを考えています。 この考え方に穴はないでしょうか? また、一般的な他の通信はどうなっているのか、ご存知の方は教えてください。
回答: ここでいう「DB」とは、DBを背後に持つWebアプリケーションサーバのことだと解釈します。 さてこのuuidは、誰にも漏れる心配の無いデータだと考えて良いのでしょうか? もしそうだとしたら、一時トークンは不要です。データアクセスのときに一緒に持っていく認証情報は、一時トークンでなくuuidを持っていけばそれで十分なので。 もし認証情報が漏れることを心配しているのだとしたら、1)2)の流れがおかしいです。誰かに盗まれたかもしれないuuidだけで本人確認としてしまってはいけないので。 通信がすべてhttpsなのなら基本盗聴はありえないものとみなして、前者のuuidだけ持ち回って認証でよろしいかと思います。