我正在努力实现一个“记住我'登录页面上的功能。
这是我想到的逻辑:在数据存储中存储会话, 将会话ID /密钥传递给客户端,以便下次用户访问 在网站上,我使用客户端的密钥从数据存储区获取信息
我正打算这样做:
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())
但我正在使用docs中的此片段来处理我的会话:
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 /密钥?