Google app engine 有没有办法检查用户是否是AppEngine云端点中的管理员

Google app engine 有没有办法检查用户是否是AppEngine云端点中的管理员,google-app-engine,google-cloud-endpoints,Google App Engine,Google Cloud Endpoints,我将AppEngine云端点与Javascript客户端和Google+登录一起使用,我使用的是端点。获取当前用户()。有没有办法检查用户是否是AppEngine管理员?类似于users.is\u current\u user\u admin()在用户API中 感谢有关执行身份验证时ID令牌和承载令牌之间差异的详细说明,请参阅 如果您不使用Android应用程序,您可以自由使用承载令牌,而不必担心ID令牌的某些限制 接下来的get\u current\u user(),oauth库提供了oaut

我将AppEngine云端点与Javascript客户端和Google+登录一起使用,我使用的是
端点。获取当前用户()。有没有办法检查用户是否是AppEngine管理员?类似于
users.is\u current\u user\u admin()
在用户API中

感谢

有关执行身份验证时ID令牌和承载令牌之间差异的详细说明,请参阅

如果您不使用Android应用程序,您可以自由使用承载令牌,而不必担心ID令牌的某些限制

接下来的
get\u current\u user()
,oauth
库提供了
oauth.is\u current\u user\u admin()方法。正如
get\u current\u user()
\u可能调用\u get\u oauth\u user
,然后检查一个简单的环境变量

如另一份答复所述:

oauth.get\u current\u user()
调用只有在它使 RPC。
\u maybe\u call\u get\u oauth\u user
方法存储来自 最后一次调用,因此再次调用
oauth.get\u current\u user()
将不会产生网络/速度开销,除了几纳秒到
从Python
dict
中查找值

因此,如果您只使用不记名代币,您可以执行以下操作

from google.appengine.api import oauth
from google.appengine.ext import endpoints

...

endpoints_user = endpoints.get_current_user()
if endpoints_user is None:
    raise endpoints.UnauthorizedException(...)

is_admin = oauth.is_current_user_admin(known_scope)
if not is_admin:
    # Throw a 403 FORBIDDEN
    raise endpoints.ForbiddenException(...)