4

私はここ 2 日間、頭を壁にぶつけていました。助けを求める時が来ました。

私は次のことを頭に入れようとしています:

モバイル アプリ ユーザーは、次のいずれかを使用してアプリにサインインします。

  • グーグル
  • フェイスブック
  • 等...

最初に Google に焦点を当てます。ログインは機能します (ユーザーは許可に同意します)。次に、アプリはトークンを取得します。GoogleAuthUtil.getToken(mActivity, mEmail, mScope); スコープは次の形式になりますaudience:server:client_id:XXXXXX AndXXXXXXXは、Web サービスの client_id です。

(モバイル アプリは Google コンソールにも登録されており、ウェブサーバーと同じプロジェクトにあります)

次に、アプリは取得したトークンを Web サーバーに送信し、そこでサーバーは を使用してペイロードを取得できます$client->verifyIdToken( $id_token );。私のサーバーはGoogle API Clientを使用しています。

しかし、これを使用して、ユーザーに追加のアクセス許可を要求せずに、サーバーが Google からユーザーデータを取得できるようにしたいと考えています (ユーザーは既にアプリにアクセス許可を与えているため)。では、ペイロードから Google にユーザーデータをリクエストするにはどうすればよいでしょうか?

私は、この Oauth2.0 / SSO プロセス全体を完全に誤解している可能性があるという考えをまだ楽しんでいます。

4

1 に答える 1

0

スコープで取得する唯一のユーザーデータaudience:server:client_id:XXXXXXは、ユーザーの電子メール アドレスです。これは、Web サーバーで受信したemailエンコードされた JSON のフィールドです (このブログ投稿には、Java/Ruby に相当するものがあります。PHP にも同様のヘルパー関数があると思います)。 .$id_token

メール アドレス以外の追加のユーザーデータが必要な場合は、Google+ API スコープの 1 つや従来の Google プロファイル API スコープなど、追加のスコープをリクエストする必要あります

于 2013-04-23T14:46:10.547 に答える