![](/img/trans.png)
[英]Google App Engine - Modify ancestral parts of key to circumvent authorization
[英]Restricting access to some parts of a site. Google App Engine webapp
身份验证后,我将用户特权标识放在用户会话中。 如何根据用户权限限制对网站某些部分的访问。 目前,我正在检查页面处理程序中的特权,但是如何使其更好?
有没有这样做的现有模板? 你能举个例子吗?
您可以定义装饰器以使其更容易。 例如:
def requiresUser(fun):
def decorate(*args, **kwargs):
if not users.get_current_user():
self.error(403)
else:
fun(*args, **kwargs)
return decorate
def requiresAdmin(fun):
def decorate(*args, **kwargs):
if not users.is_current_user_admin():
self.error(403)
else:
fun(*args, **kwargs)
return decorate
要使用它们,只需装饰处理程序方法即可:
class NewsHandler(webapp.RequestHandler):
# Only logged in users can read the news
@requiresUser
def get(self):
# Do something
# Only admins can post news
@requiresAdmin
def post(self):
# Do something
如果要将某些区域限制为仅应用程序的管理员,则可以将以下内容放入app.yaml
- url: /url.*
script: path.py
login: admin
否则你可以检查什么时候有人
class PathHandler(webapp.RequestHandler):
def get(self):
if users.get_current_user():
pass #do something
else:
self.error(403) #Access denied
def post(self):
if users.get_current_user():
pass #do something
else:
self.error(403) #Access denied
编辑: http : //code.google.com/p/gdata-python-client/source/browse/#svn/trunk/samples/oauth/oauth_on_appengine包含在appengine上使用OAuth的示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.