4

Google+のサインイン ボタンは、 Facebook のログインAPI と驚くほど類似しており、私はそれが気に入っています。

Facebook JS SDK には、クライアント側で提供されるsigned_request パラメーターがありますが、これをサーバーに渡して、クライアント側の認証が行われたことを確認できます。これは Facebook によって暗号的に署名されているため、サーバー側で Facebook とやり取りすることなく、クライアントがログインしていることを確認できます。

G+ JS API で同様のことを行う方法はありますか? 具体的には、クライアント側の認証を行い、サーバーにデータを POST して、サーバー側から Google へのリクエストを開始せずに、クライアントが実際に Google にログインしていることを確認します。

(サインイン ボタンを登録メカニズムとしてのみ使用したいので、これが必要です。Google Plus に投稿したり、ユーザーの友人リストを取得したり、通常はフル アクセス トークンが必要になるようなことはしたくありません。 )

4

2 に答える 2

4

現時点では、標準の OAuth 2.0 フローの一部として設定されたコールバック URL の外部で、Google+ がユーザーに代わってアプリケーションにリクエストを送信することはありません。

新しいトークンまたは認証コードを受け取ったら、受け取ったトークンが正当であり、意図したユーザーのものであることを確認するために、tokeninfo リクエストをサーバー側で行う必要があります。

サーバーが使用しているプラ​​ットフォームがわからないため、関連するコードを貼り付けることはできませんが、コード サンプルについてはこちらをご覧ください。

于 2013-03-14T17:46:39.090 に答える
3

したがって、実際には、そのパラメーター、access_tokenとともに返されるid_tokenにかなりよく一致します。これは、ユーザーID、クライアントIDなどを含む署名付きのjsonWebトークンです。これはあなたのユースケースに対応するようです!http://android-developers.blogspot.nl/2013/01/verifying-back-end-calls-from-android.html Tim Brayによるこのブログ投稿をご覧ください-Androidに焦点を当てていますが、ロジックはほとんど同じですすべてのクライアントで機能します。

これを取得すると、signed_requestが気に入っただけで、配信時点で有効であることがわかります。もちろん、どちらの場合でも、ユーザーがアプリにサインアウトするか、アプリへのアクセスを取り消すと、アクセストークンは電話をかけるのに無効になる可能性があります。

于 2013-03-15T08:36:01.133 に答える