繁体   English   中英

限制访问网站的某些部分。 Google App Engine网络应用

[英]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.

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