私はAndroidの部分を持つプロジェクトに取り組んでいます(ただし、将来的には他のOSアプリも存在する可能性があります)ユーザーの操作なしで動作する必要があるデバイス(入力機能が制限されており、各ユーザーがかなりの数のデバイスを持っている可能性があります)で動作します)。
そのため、最初の実行時にユーザーの承認を求める API リクエストを使用したワークフローを検討しています (デバイスは一時的な認証トークンとユーザー コードを要求し、画面にコードを表示し、ユーザーは別のデバイスの Web インターフェイスからコードを入力します)。承認デバイスが短い TTL 期間のリクエスト トークンを取得した後、リフレッシュ リクエスト トークン専用のリフレッシュ タイムレス トークンを取得します。
問題は、すべてのデバイスを一意に識別する必要があり、ユーザーがすべてのデバイス システムをバックアップして別のデバイスに復元し、両方のデバイスが以前に発行された同じトークンを使用する場合を防ぐ方法がわからないことです。 . 各デバイスはサーバーに長時間接続するため、理論的には更新トークンを取り除き、接続ごとに要求トークンを再発行できます (期限切れになる場合は、作業セッション中に時々更新します)。最初の接続がすでに確立されている場合は、2 番目の接続を防止します。
しかし、デバイスがしばらく (最後のトークン TTL よりも長く) 接続されていなかった場合はどうすればよいでしょうか? トークンの有効期限が切れるたびに、ユーザーにユーザー コードの再入力を求めることは不可能です。更新トークンを保持する場合、元のデバイスの各コピーは、「アクセス禁止」で新しい要求トークンを要求します。
ありがとう、助けていただければ幸いです。