【发布时间】:2016-12-22 00:06:52
【问题描述】:
我希望有人能指出实现这种情况的正确方法。
我正在为多个并发用户构建一个烧瓶应用程序。该应用程序本质上包装了一个后端 RESTful 服务,该服务需要身份验证并允许发送命令。用户不需要登录烧瓶应用程序本身,但他们确实提供了我用来向 Restful 服务验证对象的凭据。因此,每个用户都需要他们自己独特的对象用于他们的特定会话。为了便于使用/懒惰,我还将一些琐碎的信息存储在一些 session['x'] 变量中。
会话信息对每个用户来说不是唯一的,它似乎是最后一个“登录”的用户破坏了以前用户的身份验证对象。
构建这个的正确方法是什么?我可以将session 变量移动到对象中,但这仍然存在所有用户都需要自己的后端对象的问题。我需要实现真正的烧瓶登录吗?
【问题讨论】:
-
你需要展示一些代码。我不确定您如何在请求之间保留身份验证对象 - 您是否将其存储在会话中?您应该做的是根据会话中的唯一数据为每个请求重新创建它。
-
我将对象作为全局变量保存在应用程序本身中。 (我知道这很糟糕)。我宁愿不重新验证每个请求,因为它在时间上有点昂贵。我无法将对象持久化到
session,所以我想这是真正的问题:如何在每个用户会话中持久化对象。 -
嗯,我不明白你怎么能。存储用户特定内容的唯一位置是在会话或数据库中。但如果这是一个 REST API,他们可能正在使用 OAuth 之类的东西,它应该接受一个令牌,而不是每次都必须重新进行身份验证。
-
@DanielRoseman 谢谢。这意味着我可能需要从对象中重新设计所有内容,并简单地挂在令牌和 URL 上并传递给外部函数。我对此并不热衷,但如果没有可行的答案出现,我会沿着这条路走。