2

数か月前にウェブサイトに Google OAuth を実装しました。これまでのところ、2 人のユーザー (約 100 人) のユーザー情報プロファイルが不完全でした。有効なトークンを使用して「 https://www.googleapis.com/oauth2/v1/userinfo ?」を呼び出します。応答の json には [locale, registered_email, email, id] のみが含まれます。

ドキュメント(https://developers.google.com/accounts/docs/OAuth2Login#userinfocall)は明示的ではありませんが、私が解釈する方法は、

応答には常に [id、email、verified_email、name、given_name、family_name、timezone、gender] が含まれ、[picture, locale] が含まれる場合もあります。

UserInfo API にどのような保証があるか知っている人はいますか? 不完全なプロファイルを無効として拒否する必要がありますか? プロファイルが不完全である理由について他に説明はありますか?

UPDATE 3/6/14
問題を再現できました。ユーザーを Google に送り、次の 2 つのスコープをリクエストします。

https://www.googleapis.com/auth/userinfo.profile
および
https://www.googleapis.com/auth/userinfo.email

私が知る限り、Googleはユーザーが許可するスコープを選択することを許可していません。それはすべてまたは何もありません。ただし、URL から userinfo.profile スコープを削除して、ページをリロードすることはできました。これにより、有効なトークンが返されましたが、正しいスコープではありませんでした。tokeninfo エンドポイントにアクセスして、正しいスコープが承認されていることを確認する必要があります。

4

4 に答える 4

0

OpenIDも使用していますか?これらのユーザーは、実際には UserInfo の有効な OAuth トークンを持っていませんが、より弱い OAuth 権限に対応するデータを取得しているのではないかと強く思います。理想的には、これらのユーザーに、Google アカウントのセキュリティ ページに表示される Web サイトのデータを尋ね、それを機能しているユーザー (自分自身など) のデータと比較します。

とにかくトークンを取り消してエンドポイントにアクセスしてみて、どのような結果が得られるかを確認してください。

于 2013-03-04T15:56:21.877 に答える