私はワークフローがWebページからどのようになるかを理解していますが、デスクトップアプリのoauth + open idはアプリ内のブラウザーページを開くことができないため、どのように機能しますか。 Spotifyアプリでfacebookを使用してログインをクリックすると、ブラウザーでfacebookが開き、ユーザー操作の部分が終了すると、コントロールがアプリに戻ることがわかります。しかし、内部で何が起こるのでしょうか?
これは、私の理解に基づくWebページからの通常のワークフローになります: https://www.youtube.com/watch?v=996OiexHze
しかし、spotifyのようなデスクトップアプリでWebページを開くことができず、承認付与でサービスプロバイダー(facebook)からの応答を受け取ることができない場合、ワークフローの内容はどうなるでしょうか。
「ユニバーサルリンク」または「アプリリンク」と呼ばれることもあるコンセプトを使用しています。これらが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アプリケーションの場合と同じです。