web-dev-qa-db-ja.com

トークンベースの認証と複数のセッション

私はiOSアプリ用に継承したトークンベースの認証システム(REST)を持っています(変更できません)。同じ認証Web APIシステムを再利用する必要があります(Webリクエストに適応するように変更できます)まだiOSアプリに対応しています)。

認証システムの仕組みは次のとおりです。

  1. ユーザー名、パスワード->有効なトークンがユーザーに返され、データベースにも保存されている場合

  2. getNewToken->古いauthTokenを渡し、Web APIがテーブルから検証し、新しいトークンを発行し、データベーステーブルを更新します

1はユーザーログインによってトリガーされ、2はiOSアプリによる15分ごとの自動インターバルベースのコールです(ハートビートのようにセッションを存続させると思います)

ユーザーがWebにログインしてログインすると、トークンを取得するために#1を呼び出しますが、ユーザーが既にデバイス上にある場合、ユーザーの結果としてサーバーで更新されたため、デバイスの古いトークンは機能しません。 Webに署名します。

これは私に不思議に思います。上記のシナリオに照らして、私の質問は、実際に複数のセッションが認証トークンシステムを使用してどのように処理されるかです。たとえば、2つの異なるブラウザーでGmailまたはFacebookを開き、両方のセッションが維持されます(私はトークンベースのシステムを使用しているのか他のシステムを使用しているのかはわかりませんが、例として使用しているとしましょう)。お知らせ下さい。

5
user2727195

はい、IDがデバイスのIDの場合は、デバイスIDをどこかに保存する必要があります。サーバーにプログラムをインストールして、データベースではなく、redisやmemcachedなどの外部キー値のストレージにログイントークンを保存できる場合は、もちろんそれが可能です。

1
genichm