如何使用webapp2和数据存储区获取会话密钥?

时间:2016-07-18 03:59:26

标签: google-app-engine webapp2 google-app-engine-python

我正在努力实现一个“记住我'登录页面上的功能。

这是我想到的逻辑:在数据存储中存储会话, 将会话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 /密钥?

0 个答案:

没有答案