認証されたユーザーがアプリケーションインスタンスに変更を加えることができるマルチテナントWebアプリケーションがあります-例としてコメントを作成します。
外部Webアプリのユーザーが自分のアプリでアクションを実行し、外部アプリのログインしたユーザーが実行したアクションを記録できるAPIを構築したいと考えています。例:「Wanda Bloggsが3分前にコメントしました」
APIを可能な限り一般的に保ちながら、これは可能ですか? (1つの特定の外部アプリに関連付けられていません)。これを実装できるようにするには何を見なければなりませんか?
別のオプションは、「APIユーザーが3分前にコメントした」のようにすべてのAPIアクティビティをマークすることですが、その方法はあまりに匿名で理想的ではありません。
ガイダンスや正しい方向への指示は大歓迎です!
基本的には、アプリ内のユーザーごとに「Web APIトークン」を取得し、アプリ内に安全かつローカルに保存します。次に、それを使用して要求を認証します(最も単純な場合は、通常の要求に沿って送信します)。
Webアプリに接続し、認証してトークンを取得するには、一度だけ使用する関数が必要です。または、QRcodeを介して(もちろん認証後)Webページに表示でき、アプリはQRcodeをスキャンします。
これを少し安全にするために、現在のUnixタイムスタンプと、そのタイムスタンプとトークンの暗号的に安全なハッシュを一緒に送信できます。その後、サーバーはタイムスタンプが新しいこと、およびハッシュが一致することを確認できます。
これは、HTTPSリクエストの追加ヘッダーとして追加できます。