C#WebアプリケーションでGoogle SSOを実装しようとしています。それははのように思えました。 Based on this tutorial、GoogleはId_Token JWTを取得するためにWebブラウザでその魔法を実行します。トークンが検証のために私のWebサービスに渡され、それをアプリケーション内のユーザーに一致させるために使用されます。サーバーコールでGoogle API GoogleJsonWebSignature.ValidateAsync(...)を使用する
サーバサイドのGoogle APIを使った私のアプローチが正しいかどうかはまだ分かりませんが、私の大きなハングアップは、私が戻ってくるものを見るためにGoogle APIの非同期呼び出しをどのように扱うかを調べようとしています。
私のコードはGoogle.Apis.Authの名前空間を使用して非常に単純です:
public async Task<GoogleJsonWebSignature.Payload> wfValidateAsync(string pId_Token)
{
GoogleJsonWebSignature.Payload Sig = await GoogleJsonWebSignature.ValidateAsync(pId_Token, null, false);
return Sig;
}
この非同期/のawaitパラダイムに新しいブランドが、私はAngularJS/NodeJSの約束/コールバックでいくつかの経験を持っています。私の挑戦は、非同期メソッドは、呼び出しスタックをバックアップするたびに他の非同期メソッドによってのみ呼び出すことができるということです。私は非同期応答が終了する前にサービスコールを終了し、サービスが結果に作用できることを意味すると思います。
また、ユニットテストを作成するには、[TestMethod]メソッドにasyncを設定すると、テストエクスプローラから完全に消えます。私はこの難問をテスト/デバッグする方法がわかりません。
私はこれでまっすぐ私の頭をねじ戻すのを助けることができる誰かに事前に感謝します。