1

OAuth2を使用してユーザーのGoogleアカウントにログインするWebアプリケーションを開発しています。また、いくつかのGoogle Data APIにアクセスしているので、更新トークンとオフラインアクセスも要求しています(違いが生じる場合)。

私の問題は次のとおりです。アプリのユーザーが最初にログインし、OAuthを実行し、トークン/ユーザーIDをデータベースに保存した後、その後のアクセスでユーザーを識別するシステムを導入する必要があります。

これを行うには、GoogleユーザーID(「userinfo」エンドポイントの呼び出しによって取得)をSession変数に保存します。これは、ユーザーが自分のGoogleアカウントからログアウトし、場合によっては別のアカウント(私のアプリではなくGoogleに)でログインするまでは正常に機能します。この時点で、私のアプリには正しいログインユーザーがなく、適切なユーザーに属していないデータを表示できます。

ログインしたGoogleアカウントユーザーを効率的に特定する方法を知っている人はいますか?

いつでもuserinfoエンドポイントを呼び出すことができると思いますが、アプリケーションのすべてのページでこれを行うのはやり過ぎのようであり、より効率的なアプローチが必要です。

私はPHPでプログラミングしており、開発に「google-api-php-client」ライブラリを使用しています。

よろしくお願いします。

4

1 に答える 1

2

あなたが正しい。現在、これを行う最も効率的な方法は、userinfoエンドポイントを照会することです。

ただし、UIの外観によっては、IDを変更するオプションを提供することは適切な妥協案であることがわかりました。「あなたじゃないの?」のような小さなリンク サインインボタンのオプションです。完全に文書化されていない非常に新しいAPIがあり、ユーザーに別のアカウントを選択させることができます。この答えを参照してください:Googleアカウントチューザーを強制します

これをウェブサイトにとってよりシームレスで効率的なものにすることを望んでいますが、現時点で発表することはこれ以上ありません。

于 2013-02-01T22:16:34.533 に答える