Google app engine 如何在我的个人博客上隐藏登录按钮
我决定在谷歌AppEngine上实现一个博客系统。但是:Google app engine 如何在我的个人博客上隐藏登录按钮,google-app-engine,Google App Engine,我决定在谷歌AppEngine上实现一个博客系统。但是: 我不想在我的博客上添加登录按钮 我不想提供一个url手动输入登录 但我仍然想在网上做一些只为我自己的管理工作,例如发布、编辑、删除等等 有什么聪明的方法可以实现这一点吗?提供一个不同的页面或URL,显示博客管理功能的登录按钮。例如,一个博客可以托管在wordpress.com上,管理员可以在那里登录,但可以通过一个不同的URL访问,该URL不公开登录按钮 您可以使用键盘快捷键。或者一个看不见的按钮。可能是一个手势。您可以向网页模板添加一个
有什么聪明的方法可以实现这一点吗?提供一个不同的页面或URL,显示博客管理功能的登录按钮。例如,一个博客可以托管在wordpress.com上,管理员可以在那里登录,但可以通过一个不同的URL访问,该URL不公开登录按钮 您可以使用键盘快捷键。或者一个看不见的按钮。可能是一个手势。您可以向网页模板添加一个组件,该组件仅在您是管理员时才会呈现 例如,在您的HTML模板中,如果您有类似的内容,它将仅在admin\u bool为True时呈现内容。所以你可以在里面放一张表格等,只有你才能看到它
{% if admin_bool %}
# only show this if you are an admin
{% endif %}
因此,如果您碰巧正在使用GAE用户服务,您可以这样做:
from google.appengine.api import users
user = users.get_current_user()
if user:
print "Welcome, %s!" % user.nickname()
if users.is_current_user_admin():
admin_bool = True
并将admin_bool传递给模板,只有当前用户是管理员时才会呈现
我看不出有任何理由不提供一个在任何地方都没有显示的秘密URL,然后在app.yaml中为您的管理员页面设置页面,如下所示:
- url: /admin/.*
script: admin.app
login: admin
但如果你真的不想提供任何东西,你仍然可以这样做。别忘了,您可以在Google App Engine上为同一应用程序部署多达10个不同版本的应用程序,这些应用程序具有可访问的唯一URL,如下所示:
http://version-name.application-name.appspot.com
因此,您可以创建一个完全不同的应用程序来管理您的站点,并创建另一个应用程序来展示它。将它们部署在同一个应用程序上,并将正确的应用程序作为默认版本。可能是一个解决方案。所以不管怎么说,我似乎必须登录到某个地方==我真的在想这个。只是我已经想出了一种新的方法来实现这一点:)这取决于登录按钮应该受到多少保护。通过查看页面的代码,可以看到键盘快捷键、不可见按钮或手势。@akton好吧,安全性可能不是问题,因为在appengine上,它留给谷歌处理。我只想完全删除登录按钮或以一种有趣的方式实现它。要使用
users.is\u current\u user\u admin()
检查您是否是管理员,您必须先登录。如果我不提供登录按钮和url,在哪里登录?好吧,你不想实现登录界面,但你必须在某个地方登录。因此,使用这些方案,您至少必须登录到您的谷歌帐户。无论你做什么,如果它变得流行,你必须有一个适当的身份验证方案。你现在可以在代码中隐藏一些东西,但是有人会找到它。如果您登录到谷歌,并且您的谷歌帐户设置为admin,则管理界面将自动显示在您的应用程序中。如果您登录到谷歌,并且您的谷歌帐户设置为admin,则管理界面将自动显示在您的应用程序中。
这就是我想要的。我认为登录到你的谷歌账户不会自动登录到你的应用程序因为我认为你必须明确地单独登录每个应用程序。好的,等几天。我必须首先验证登录信息。”因为我在某个地方看到,你拥有的每个应用程序都需要显式登录。或多或少与akton的解决方案相同。我不喜欢“登录”按钮,因为我认为它对观众毫无用处。@gb18030他说的是同一个应用程序。。只是隐藏URL,我当然支持。。。但您可以部署完全不同的应用程序。。因此,博客部分将没有关于如何管理网站。。!再想想,太好了!:)我从未想过为管理员创建一个单独的应用程序。我会考虑这个。@ GB18030,如果它只会为你…你不必花太多的精力来让它变得伟大或安全。。如果您设置了login:admin
Google将确保只有您才能登录(或应用程序的任何管理员)