【问题标题】:remember me option in GAE pythonGAE python中的记住我选项
【发布时间】:2016-09-05 15:23:35
【问题描述】:

我正在开发一个项目,其中我正在开发注册/登录模块。我已经成功实现了 webapp2 python 中的会话。现在我想在登录时实现记住我的功能。我找不到任何可以帮助我的东西。我知道我必须设置会话的年龄。但是我不知道怎么做。这是我的会话代码。

def dispatch(self):

    # Get a session store for this request.
    self.session_store = sessions.get_store(request=self.request)

    try:
        # Dispatch the request.
        webapp2.RequestHandler.dispatch(self)
    finally:
        # Save all sessions.
        self.session_store.save_sessions(self.response)

@webapp2.cached_property
def session(self):
    # Returns a session using the default cookie key.
    return self.session_store.get_session()

配置:

config = {}
config['webapp2_extras.sessions'] = {
    'secret_key': 'my-super-secret-key',
}

请帮助我。

【问题讨论】:

    标签: python google-app-engine webapp2


    【解决方案1】:

    首先,如果您不知道会话和 cookie 之间的区别

    什么是Cookie? cookie 是存储在 通过浏览器访问用户的计算机。 cookie 的常见用途是 身份验证、存储站点偏好、购物车项目,以及 服务器会话标识。

    每次用户的网络浏览器与网络服务器交互时,它都会 将 cookie 信息传递给 Web 服务器。仅存储的 cookie 由与请求 URL 中的域相关的浏览器将 发送到服务器。这意味着与 www.example.com 不会被发送到 www.exampledomain.com。

    本质上,cookie 是一种将一个页面链接到下一个页面的好方法 用于用户与网站或网络应用程序的交互。

    .

    什么是会话?会话可以定义为服务器端的存储 希望在用户的整个过程中持续存在的信息 与网站或 Web 应用程序的交互。

    而不是通过存储大量且不断变化的信息 用户浏览器中的 cookie,仅存储一个唯一标识符 客户端(称为“会话 ID”)。此会话 ID 传递给 每次浏览器发出 HTTP 请求(即页面 链接或 AJAX 请求)。 Web 应用程序将此会话 ID 与 它是内部数据库并检索存储的变量以供使用 请求的页面。

    如果您想实现“记住我”之类的功能,您应该使用 cookie,因为存储在会话中的数据不是持久的。

    用于在webapp2中设置和获取cookies:

    response.headers.add_header('Set-Cookie', 'remember_me=%s' % some_hash)
    
    request.cookies.get('remember_me', '')
    

    我强烈建议您阅读此article,它已彻底解释了这些内容。

    【讨论】:

    • 如何设置过期时间。
    • 根据我在回答中提到的文章:Set-Cookie: user = 123; Expires = Tue, 1 Jan 2005 00:00:00 GMT
    • 如果你能分享代码会很有帮助。因为我在那里找不到代码。
    • response.headers.add_header('Set-Cookie', 'remember_me=%s; Expires = Tue, 1 Jan 2005 00:00:00 GMT' % some_hash)
    • 我能提供像 36000 秒这样的持续时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2014-08-12
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    相关资源
    最近更新 更多