1

アプリをGoogleアカウントログインからフェデレーションログインに移行したいと思います。私のアプリが正しく機能するには、ユーザーのメールアドレスが必要です。

ユーザーが主要なIDプロバイダー(Google、Facebook、Yahooなど)を使用している場合、ユーザーはログインできても、アプリが自分のメールアドレスにアクセスすることを許可できない可能性はありますか?

ユーザーにメールアドレスを提供するように依頼することもできますが、確認のためにそのアドレスにメールを送信したり、ユーザーにリンクをクリックしてもらう必要があります。その手順は避けたいと思います。

4

1 に答える 1

1

通常、 OpenID Attribute Exchangeを使用して、電子メールなどの特別なユーザー属性を要求できます。

AppengineはAEを内部的に使用してユーザーにメールをリクエストしますが、他のパラメーター(名前など)はリクエストしません。また、GAEには、他のパラメーターを要求するオプションはありません。

したがって、フェデレーションログインを介してユーザーに電子メールを送信する必要がありますが、これはOpenIDプロバイダーによって異なり、常に提供されるとは限りません。

したがって、これには複数の解決策があります。

  1. ユーザーの電子メールを提供する特定のOpenIDプロバイダーのみを許可します。

  2. プロバイダーが電子メールを提供する場合はそれを使用し、そうでない場合はユーザーに電子メールを提供するように要求します。

または、代わりにOAuth 2.0を使用して、ユーザープロファイルをリクエストすることもできます。これにより、ほとんどの場合(Google、Facebook)、ただし常にではない(Twitter)、電子メールを含むユーザーの詳細が取得されます。したがって、ログインに加えて、1。または2.を実行する必要があります。利点は、かなり普及しているFacebookをサポートできることです。

于 2012-11-04T10:18:14.133 に答える