ゲーム用の RESTful API を作成しようとしています。
このゲームは、匿名ユーザー (今すぐプレイしたいユーザー) と登録したいユーザーの両方をサポートします。
私が達成しようとしているのは、未登録のユーザーがまだ同じコンピューターを使用している間、それらに関連付けられたデータが永続化されることです。登録することを選択した人に対する適切なユーザーサポートもあり、うまくかみ合わせるのに苦労しています.
GET users/create Users.create
ユーザーを返す新しい「匿名」ユーザーを作成します(およびそれによって識別できる一意のトークン)
POST users/register Users.register
オプションのトークン (ユーザーが以前に匿名だった場合)、電子メール、およびパスワードを受け取ります。新しい登録ユーザーが作成されます (トークンが提供されている場合は同じトークンを使用するか、新しいユーザーが作成されます)。
POST auth/login Auth.login
メールアドレスとパスワードを取得し、成功した場合はユーザーを返します
POST auth/authenticate
一意のトークンを受け取り、データベースにトークンが存在するかどうかに基づいて 200/500 を返します。
基本的に、サーバーへのすべての呼び出しには、これらの一意のトークンのいずれかが必要です。それを使用して、関連付けられているユーザーを追跡できます。
登録ユーザー向けにある種の「remember me」機能を実装しようとすると、本当に混乱します。登録ユーザーがこれらの一意のトークンのいずれかを使用できる場合、それを記憶トークンとして使用できますか? これは、セキュリティ上、不適切な選択であり、多くのauth/authenticate
失敗を引き起こす可能性があるようです。ユーザーが新しいコンピューターにログインするたびに、新しいトークンを作成する必要があるためです。
私は何かを完全に見逃していますか?このプロセス全体には、セキュリティ災害があちこちに書かれているようです。この種の行動のための良いレシピはありますか?
乾杯、
イアン