3

Google の OAuth を使用してユーザーを認証するために、C# winform の組み込みの webbrowser コントロールを使用したいと思います。私が見つけたものはすべて、ユーザーが Web ブラウザーでログイン プロセスを実行してアクセス トークンを取得し、そのトークンをアプリケーションに貼り付ける必要がありました。ユーザーがコピー/貼り付けする必要がないように、そのアクセストークンを自動的に取得するにはどうすればよいですか?

4

1 に答える 1

0

Jon さん、通常、Bearer トークンは html-response 本文で JSON ドキュメントとして返送されます。たとえば、仕様から。

  HTTP/1.1 200 OK
  Content-Type: application/json;charset=UTF-8
  Cache-Control: no-store
  Pragma: no-cache

  {
    "access_token":"mF_9.B5f-4.1JqM",
    "token_type":"Bearer",
    "expires_in":3600,
    "refresh_token":"tGzv3JOkF0XG5Qx2TlKWIA"
  }

この場合、WebBrowser.DocumentCompleted イベントを使用して応答を取得し、JavaScriptSerializer を使用して JSON をキャプチャできます。

JavaScriptSerializer jss = new JavaScriptSerializer();
String json = webbrowser.DocumentText
TokenResponse token = jss.Deserialize<TokenResponse>(json);


   public class TokenResponse
    {
        public string access_token { get; set; }
        public string token_type { get; set; }
        public string expires_in { get; set; }
        public string refresh_token { get; set; }
    }
于 2013-01-26T06:53:20.037 に答える