0

JIRA 票证AC-3349打开。我在这里发布问题是为了帮助可能遇到问题的其他人。如果您有同样的问题,请按照票证。

详细信息: 这个问题今天才开始发生(从美国东部标准时间下午 1.30 左右开始)——在此之前一切正常。如果您使用 ArrowDB Node SDKusersLogin以非管理员用户身份登录,则元对象中返回的会话 ID 是管理员用户的会话 ID!可以通过使用 ArrowDB 节点 SDK 并传递会话 ID 来确认这一点,usersShowMe该 ID 返回管理员的用户对象,而不是最初登录的用户。在过去的一两个小时内发生了明显的变化,因为这些 API 在此之前工作正常。我已经尝试过使用两个不同的 ArrowDB 实例,并且两者的问题都是相同的。因此,问题不在于特定的 ArrowDB 实例,而在于 Appcelerator 平台上的 ArrowDB 会话管理的其他地方。

4

1 回答 1

0

显然,这只发生在以下情况下:

首先,以用户 A(比如)身份登录并将会话 ID 存储在某处。接下来,在 Node.js 代码中,创建一个新的 ArrowDB 实例,然后使用之前存储的会话 ID 设置 sessionCookieString 属性。接下来,在同一个代码块中,使用 usersLogin 方法以用户 B(例如,在我的例子中是管理员帐户)身份登录。登录后,显然以前存储的会话 ID 现在“属于”用户 B,我认为这是一个错误。我假设 usersLogin 方法会为用户 B 发出一个新的会话 ID,并单独为用户 A 保留先前生成的会话 ID。但事实并非如此。用户 A 的前一个会话 id 被重新分配给用户 B,我认为这是 ArrowDB SDK 中的一个错误。

作为一种解决方法,如果希望以其他用户(通常是管理员帐户)身份登录,则需要在已经为现有实例设置 sessionCookieString 之后创建 ArrowDB 的新实例,否则会重新分配先前的会话 ID。

于 2016-03-18T13:30:11.750 回答