はい、クラウドエンドポイントAPIのバックエンドコード(JavaまたはPython)はApp Engine上で実行されているため、App Engine上にあるすべてのリソースに同じアクセス権があります。
クライアント側のCookieをセッションに設定することはできませんが、依然としてユーザーが要求を取得し、ユーザー固有のデータをデータストアに保存できます。 @Shay Erlichmenが述べたように、データストアをmemcacheとコンテキスト内キャッシュ(ndbのように)と結合すると、これらのルックアップを非常に迅速に行うことができます。
PythonまたはJavaのどちらでもこれを行うには、APIの注釈/デコレータまたはメソッドで、allowed_client_ids
またはaudiences
のいずれかを指定する必要があります。詳細については、docsを参照してください。
のPython:
あなたはPythonでユーザーを取得したい場合は、allowed_client_ids
またはaudiences
で注釈を付けてきたリクエストの中から
endpoints.get_current_user()
を呼び出します。これがNone
を返した場合、有効なユーザーは存在しません(また、401を返す必要があります)。
ジャワ:
単にリクエストにユーザーオブジェクトを指定し、(注釈付きのAPIに含ままたはメソッド)の注釈付きメソッドにユーザーを取得する:
import com.google.appengine.api.users.User;
...
public Model insert(Model model, User user) throws
OAuthRequestException, IOException {
とPythonのように、 user
がnull
であるかどうかをチェックして、有効なOAuth 2.0トークンがリクエストとともに送信されたかどうかを判断します。
おかげ@Shay!私の無知を許してはいけませんが、「キー参照」と言うと、クエリの代わりに直接 'getObjectById'を使うことを意味します。そしてNDBは何ですか? – MikO
あなたのJavaの男、NDBはPython用です。 –
はい:キーの参照はgetObjectByIdを使用しています –