gpt4 book ai didi

google-app-engine - 有没有办法检查用户是否是 AppEngine Cloud Endpoints 中的管理员

转载 作者:太空宇宙 更新时间:2023-11-03 15:32:27 25 4
gpt4 key购买 nike

我正在将 AppEngine Cloud Endpoints 与 Javascript 客户端和 Google+ 登录一起使用,我正在使用 endpoints.get_current_user()。有没有办法检查用户是否是 AppEngine 管理员?类似于用户 API 中的 users.is_current_user_admin()

谢谢

最佳答案

参见 Google Endpoints API + Chrome Extension returns None for endpoints.get_current_user().user_id()有关执行身份验证时 ID token 和 Bearer token 之间差异的详细描述。

如果您不使用 Android 应用程序,您可以自由使用 Bearer token ,而不必担心 ID token 的一些限制。

紧接着 get_current_user()oauth 库提供了 oauth.is_current_user_admin() 方法。与 get_current_user() 完全相同,this method calls _maybe_call_get_oauth_user 然后检查一个简单的环境变量。

正如另一个答案中提到的:

The oauth.get_current_user() call is only expensive IF it makes the RPC. The _maybe_call_get_oauth_user method stores the value from the last call, so calling oauth.get_current_user() a second time will incur no network/speed overhead other than the few nanoseconds to lookup a value from a Python dict.

因此,如果您只使用 Bearer token ,您可以执行以下操作

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(...)

关于google-app-engine - 有没有办法检查用户是否是 AppEngine Cloud Endpoints 中的管理员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16752998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com