2012-05-15 8 views
8

user.getUserId()を呼び出して返されたuserIdが秘密として扱われるべきか、それともパブリックURLで使用できるのか不思議です。たとえば、プロフィールページのURLはhttp://example.com/userprofile/11901930903930のようになります。ここで11901930903930はAppengineでGoogleが生成したユーザーIDです。Google AppengineのユーザーIDを秘密扱いにする必要がありますか?

これは、我々はのuserIdを取得するために使用されている機能である:実際に

UserService userService = UserServiceFactory.getUserService(); 
User user = userService.getCurrentUser(); 

String id = user.getUserId(); 

答えて

11

が、私はGoogleでこの情報を発見し、結論は彼らを公に使用すべきではないということです。 Googleからの

へのアクセスアカウント情報

ユーザーがアプリに署名されている間、アプリは、ユーザーがアプリになりますすべての要求のために、アカウントのメールアドレスやOpenIDの識別子にアクセスすることができます。また、ユーザーが自分のアカウントのメールアドレスを変更した場合でも、そのユーザーを一意に識別するユーザーIDにアクセスすることができます。

アプリは、現在のユーザーがアプリの管理者(「開発者」)であるかどうかを判断することもできます。他のユーザーを認証しなくても、この機能を使用してアプリケーションの管理機能を構築することができます。 Go、Java、およびPython APIを使用すると、URLを「管理者のみ」として簡単に設定できます。

注:すべてのユーザーには、すべてのApp EngineアプリケーションのユーザーIDが同じです。あなたのアプリケーションがURLパラメータにそれを含めるなど、パブリックデータのユーザーIDを使用する場合は、IDを隠すために「塩」値が付加されたハッシュアルゴリズムを使用する必要があります。生のIDを公開すると、あるアプリのユーザーのアクティビティを別のアプリのアクティビティに関連付けたり、別のアプリにログインするようにユーザーのメールアドレスを取得したりすることができます。

Link to page

関連する問題