1

OAuth を介して Google からユーザーを検証するプロセスをセットアップしようとしています。作成したい動作は次のとおりです。

ユーザーは私が提供した URL に移動し、アプリケーションは Google に戻ってログインしているかどうかを確認し、ログインしていない場合は認証し、Google の「ログイン」プロンプトを表示してユーザーに認証を完了させます。

ユーザーが認証された後、基本情報 (電子メール、姓名) などを収集したいと考えています。

それができたら、私は他のことをしますが、私はそこが得意です。

私は読んだことがありますが、OAuth 認証プロセス全体と、それが Google にどのようにプラグインされるかについて理解するのに苦労しています。誰かが私が得ようとしている方向に私を向けることができますか?

Google API で製品を作成し、クライアント ID とシークレットを取得したので、C# アプリを起動する準備ができたと思います。

4

1 に答える 1

1

必要なものはすべてこのパッケージにまとめられています: http://dotnetopenauth.net/

それらの例を見ると、ユーザー情報の一部を要求する方法と、それらを読み取る方法が示されます。

[編集]

      const string CallbackParameter = "callback";
      const string Endpoint = "https://www.google.com/accounts/o8/id";

      using (var openid = new OpenIdRelyingParty())
      {
            var callbackUrl = new Uri(string.Format("{0}?{1}=true", _context.RequestUri.AbsoluteUri, CallbackParameter));
            var authRequest = openid.CreateRequest(Endpoint, new Realm(string.Format("{0}://{1}", _context.RequestUri.Scheme, _context.RequestUri.Authority)), callbackUrl);

            // Tell Google what we want
            var fetch = new FetchRequest();
            fetch.Attributes.AddRequired(WellKnownAttributes.Contact.Email);
            fetch.Attributes.AddRequired(WellKnownAttributes.Name.First);
            fetch.Attributes.AddRequired(WellKnownAttributes.Name.Last);
            authRequest.AddExtension(fetch);

            var response = authRequest.RedirectingResponse;
            var location = response.Headers["Location"];

            var fetch = response.GetExtension<FetchResponse>();
            if (fetch != null)
            {
                Username = fetch.GetAttributeValue(WellKnownAttributes.Contact.Email);
                Email = fetch.GetAttributeValue(WellKnownAttributes.Contact.Email);
                FirstName = fetch.GetAttributeValue(WellKnownAttributes.Name.First);
                LastName = fetch.GetAttributeValue(WellKnownAttributes.Name.Last);
            }
      }
于 2013-09-25T15:45:52.263 に答える