繁体   English   中英

Google App Engine中的身份验证:app.yaml与python代码

[英]Authentication in Google App Engine: app.yaml vs. python code

我正在编写一个使用GAE的小应用程序。 我的应用程序部分仅供管理使用。 我有两个选项,使用app.yaml中的login: admin选项或python代码中的google.appengine.api.users.is_current_user_admin() 基本身份验证对我的情况就足够了。

哪种解决方案更好?

使用app.yaml的优点是python代码更清晰一点。 此外,app.yaml可能会更高效,因为它可以在服务器中处理。 (在最坏的情况下,它在性能方面是相同的。)唯一的缺点是我没有显示自定义页面,但我并不关心。

我不确定我的断言是否正确。

我会说你的断言是正确的。 假设您的app.yaml中包含以下内容:

- url: /admin/.*
  script: admin.py
  login: admin

如果您希望admin.py所有内容都限制在管理员admin.py ,那么上面的配置应该更admin.py :您可以在未启动admin.py情况下使未经授权的请求失败。

当您想要定义更精细的逻辑和行为时,检查users.is_current_user_admin()非常有用。 也许您有一个应该可用的处理程序,无论用户是管理员,非管理员还是未登录,您只需要检查其当前状态,以便返回相应的HTML。

如果你有只有管理员可以访问的处理程序,那么app.yaml肯定是保护这些处理程序公开的页面的最简单方法。

但是,如果您有一些同时提供管理员和非管理员视图的处理程序(例如,您的main.py),那么您将不得不使用比app.yaml更细粒度的东西(例如, google.appengine.api.users.is_current_user_admin() )。

我希望一旦你的应用程序运行,性能大致相当(加载页面所需的时间可以忽略不计)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM