Google app engine 如何获得会话';webapp2和数据存储的密钥?
我正在尝试在登录页面上实现“记住我”功能 这就是我想到的逻辑:将会话存储在数据存储中, 将会话id/密钥传递给客户端,以便用户下次访问 该站点,我从数据存储中获取信息,并使用客户端拥有的密钥 我正要做这样的事情:Google app engine 如何获得会话';webapp2和数据存储的密钥?,google-app-engine,webapp2,google-app-engine-python,Google App Engine,Webapp2,Google App Engine Python,我正在尝试在登录页面上实现“记住我”功能 这就是我想到的逻辑:将会话存储在数据存储中, 将会话id/密钥传递给客户端,以便用户下次访问 该站点,我从数据存储中获取信息,并使用客户端拥有的密钥 我正要做这样的事情: class Session(ndb.Model): username = ndb.StringProperty() email = ndb.StringProperty() if request.get('rememberme'): session = Ses
class Session(ndb.Model):
username = ndb.StringProperty()
email = ndb.StringProperty()
if request.get('rememberme'):
session = Session()
session.email = 'john@doe.com'
session.username = 'jon snow'
key = session.put()
# send `key` back to client and store in a cookie, so
# when client visits the site again, get the session
# values from the datastore
self.response.write(key.id())
但我正在使用中的这段代码来处理我的会话:
class BaseHandler(webapp2.RequestHandler):
def dispatch(self):
self.session_store = sessions.get_store(request=self.request)
try:
webapp2.RequestHandler.dispatch(self)
finally:
self.session_store.save_sessions(self.response)
@webapp2.cached_property
def session(self):
return self.session_store.get_session(name='foo', backend='datastore')
这也会将数据插入“会话”类型下的数据存储中。
因此,如果我也在数据存储中手动存储会话,感觉就像是在做冗余工作
当使用带有数据存储的webapp2会话作为后端时,我如何知道该会话的id/密钥?为什么需要知道密钥?您可以使用
self.session['which']
直接在处理程序中获取数据,以便在用户下次访问应用程序时从数据存储中检索数据。在执行会话['whatever']
之前,我需要从数据存储中获取它,最好是使用存储在客户端Cookie中的密钥。为什么需要知道密钥?您可以使用self.session['which']
直接在处理程序中获取数据,以便在用户下次访问应用程序时从数据存储中检索数据。在执行会话['whatever']
之前,我需要从数据存储中获取它,最好是使用存储在客户端cookie中的密钥