如何在app.yaml(谷歌应用引擎,python)中使用login:required属性的自定义身份验证



在谷歌应用程序引擎上,我使用了一个带有方法的自定义用户类。(不是webapp2提供的类和函数)

然而,我仍然需要阻止用户访问某些后面有html页面的静态目录url。我目前的解决方案是,用户身份验证在用户访问页面后发生,但他们仍然会看到整个页面加载了一段时间。这看起来很糟糕,不太安全。

如何在YAML文件中使用带有login:required属性的自定义身份验证选项?以便用户在未登录时立即重定向(在登录页面之前)。

从本质上讲,您有以下选择:要么放弃直接从应用程序引擎基础结构(对应用程序透明)提供静态文件/dir服务,要么放弃使用自定义用户类进行身份验证。

我怀疑你会选择第一种选择,为你的应用程序中的所有文件提供服务(至少,除了授权用户之外,所有文件都必须对所有用户保密)——这"只是"花费了更多的资源(可能会略微增加用户的延迟),但可以让你实现你需要的任何功能。

利用CCD_ 1&app.yaml中的c指令是,你的应用程序实际上并没有参与进来——应用程序引擎的基础设施为你做所有的事情,这为你节省了资源,并可能为用户带来更快的速度(更好的缓存/CDN式交付)。但是,如果你的应用程序并没有真正参与进来,那么你为自定义身份验证编写的任何代码怎么可能正在运行呢?!这将是一个合乎逻辑的矛盾。。。

如果你不愿意从应用程序中提供静态文件,特别是因为它们非常大,那么你可以通过从应用程序提供URL来完全恢复速度(然后再恢复一些),并节省一些资源,但在验证后,直接转到谷歌云存储it来实际提供服务。

更普遍地说,你实际上不需要保密的文件(将这些文件放在static_dir&c app.yaml指令中)、足够大的文件,可以保证从云存储提供服务,以及你的应用程序最适合直接提供服务的文件的组合,可以让你在各个方面进行优化,同时在任何重要的地方完全控制你的自定义身份验证!

最新更新