web-dev-qa-db-ja.com

デスクトップアプリからoauth(+ open id connect)をSpotifyで実行するにはどうすればよいですか?

私はワークフローがWebページからどのようになるかを理解していますが、デスクトップアプリのoauth + open idはアプリ内のブラウザーページを開くことができないため、どのように機能しますか。 Spotifyアプリでfacebookを使用してログインをクリックすると、ブラウザーでfacebookが開き、ユーザー操作の部分が終了すると、コントロールがアプリに戻ることがわかります。しかし、内部で何が起こるのでしょうか?

これは、私の理解に基づくWebページからの通常のワークフローになります: https://www.youtube.com/watch?v=996OiexHze

  1. ユーザーがアプリのxyzで承認をクリックする
  2. 認可付与のためにxyz認可ページが開きます
  3. 許可の範囲を許可するためのユーザー対話。この範囲は、opend ID connectまたはログインのようなものです。
  4. アプリのコールバックページは、xyzからの許可付与で開かれます
  5. バックチャネルでは、アプリはxyzと通信し、オープンIDログインの承認付与とともにxyzからアクセストークンを取得します

しかし、spotifyのようなデスクトップアプリでWebページを開くことができず、承認付与でサービスプロバイダー(facebook)からの応答を受け取ることができない場合、ワークフローの内容はどうなるでしょうか。

1
ssn

「ユニバーサルリンク」または「アプリリンク」と呼ばれることもあるコンセプトを使用しています。これらがWindowsでどのように実装されているかの例を次に示します。 https://docs.Microsoft.com/en-us/windows/uwp/launch-resume/web-to-app-linking とここにありますiOSアプリの場合: https://developer.Apple.com/ios/universal-links/

これらは、環境内の特定のアプリケーションにマッピングできるHTTPS URLであるという考え方です。それらが適切にマッピングされていると仮定すると、アプリはブラウザーではなく起動します。ただし、アプリが適切にインストールまたはマッピングされていない場合は、(まだHTTPSのURLであるため)、ブラウザーは代わりにURLをロードします。それらに与えられるURLには、OAuth付与を完了するために必要な認証コードが含まれています。これは、通常のWebアプリケーションの場合と同じです。

2
Jake Feasel