5

Federated login を使用して Java アプリ用の Google App Engine を構築しています。

ユーザーが OAuth プロバイダーを使用してアプリにログインすると、User オブジェクトが返されます [http://code.google.com/appengine/docs/java/javadoc/com/google/appengine/api/users/User.html ]。

そのユーザーへのリンクをデータストアに保持したいと考えています。ただし、一意のキーとして何を使用しますか? getFederatedIdentity() または getUserId() ですか? どちらにも JavaDoc はほとんどありません。明らかに、ユーザーがその後アプリにログインしたときに、データストアに保存したオブジェクトを取得したいと考えています。

federatedIdentity フィールドは常に入力する必要があることを理解しています (フェデレーション ログオンのみを許可しています)。ただし、それが私の詳細をログオンしているユーザーにリンクするために使用するフィールドである場合、Google はローカル サーバーでテストするときにこれを空のままにします...そのため、あまり役に立ちません。

getUserId フィールドとは何ですか - Google はどのように設定しますか? ユーザーのフェデレーション ID が同じままである場合、同じままであることが保証されますか?

どうもありがとう

4

2 に答える 2

2

ユーザーのJavaAPIの概要から

ユーザーがアプリにサインインしている間、アプリは、ユーザーがアプリに対して行うすべてのリクエストについて、アカウントのメールアドレスまたはOpenID識別子にアクセスできます。アプリは、ユーザーが自分のアカウントのメールアドレスを変更した場合でも、ユーザーを一意に識別するユーザーIDにアクセスすることもできます。

のように聞こえるgetUserId()が最良の選択です。

于 2011-01-26T20:10:22.403 に答える
0

どちらも保存する必要はありません。User オブジェクトをデータストアに直接保存できます。サポートされているオブジェクト タイプのリストについては、こちらを参照してください。

于 2011-01-27T03:38:37.487 に答える