Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用google帐户登录后的操作_Python_Google App Engine - Fatal编程技术网

Python 使用google帐户登录后的操作

Python 使用google帐户登录后的操作,python,google-app-engine,Python,Google App Engine,我是谷歌应用引擎的新手,所以我的问题可能有点愚蠢或琐碎,但无论如何。。。对于每个用户(对于每个google acc),我的数据存储中都有一个实体。所以当一个新用户登录时,我想把他添加到数据库中。 我使用: 为了确保用户使用google acc登录。问题是当有人从子页面(blabla.appspot.com/something)登录时,登录后他将被重定向到blablabla.appspot.com/something,如果当前用户已经存储在数据库中,我必须在请求处理程序中验证“something”

我是谷歌应用引擎的新手,所以我的问题可能有点愚蠢或琐碎,但无论如何。。。对于每个用户(对于每个google acc),我的数据存储中都有一个实体。所以当一个新用户登录时,我想把他添加到数据库中。 我使用:


为了确保用户使用google acc登录。问题是当有人从子页面(blabla.appspot.com/something)登录时,登录后他将被重定向到blablabla.appspot.com/something,如果当前用户已经存储在数据库中,我必须在请求处理程序中验证“something”。如何在不向每个请求处理程序添加相同代码的情况下执行此操作?也许在登录或类似操作后可以重定向到主页面?

这里有一个简单的方法:如果您创建一个子类
webapp.RequestHandler
,那么您的处理程序将子类化,您可以为它提供一种方便的方法,用于获取或创建给定的
users.get\u current\u user().user\u id()。然后,处理程序在其
get()
post()方法中调用便利方法

class MyRequestHandler(webapp.RequestHandler):
  def setup_user_info(self):
    # left as an exercise
    self.user_info = user_info
然后

class MyHandler(MyRequestHandler):
  def get(self):
    self.setup_user_info()
    ...

也许用这个发一些代码?你正在考虑编写一个装饰程序。问问自己:你访问过多少网站,它们会立即将你发送到登录页面,而不是显示带有登录链接/表单的介绍页面?在webapp中的所有url使用login:required可能不是一个好主意,除非你在做一些内部网的事情。通过链接登录还可以使重定向到注册页面的过程稍微不那么难看;它消除了使用注册逻辑装饰应用程序中每个处理程序的需要。更妙的是,在调用
super(MyRequestHandler,self)之后,将对
setup\u user\u info
的调用放入
initialize
。初始化(请求,响应)
。或者,让返回当前用户的getter进行初始化。
class MyHandler(MyRequestHandler):
  def get(self):
    self.setup_user_info()
    ...