当Parse.com创建一个sessionToken时,如果它已经过期了怎么办?

时间:2017-01-12 09:26:51

标签: session parse-platform parse-server

在班级_Session的解析仪表板中,正在保存所有sessionTokens。 以下操作似乎会触发创建:

  • 登录
  • 注册
  • 升级

第一个问题是:是否还有其他操作可以创建新的会话令牌?

而且:我看到所有令牌都有一个expiresAt字段。哪个始终在令牌createdAt后1年设置。我可以延长这段时间(例如2年)吗?

最后:如果此令牌过期,并且用户使用我的应用程序,那么会发生什么?该应用程序将需要新登录(因此将创建一个新令牌)?

2 个答案:

答案 0 :(得分:2)

纠正行动。

Parse-server允许在初始化时提前选项。使用sessionLength设置到期日期 如果您使用环境变量,它将是PARSE_SERVER_SESSION_LENGTH

sessionLength - 会话有效的时间长度(以秒为单位)。默认为31536000秒(1年)。

取决于你做客户端的事情。如果会话已过期,您可以强制注销。

另请注意,尝试使用已过期的会话运行云代码时,将显示以下错误:{"code":209,"message":"Session token is expired."}

答案 1 :(得分:0)

我只是碰到了这一点,并希望以公认的答案为基础。

  1. 是的,默认sessionLength为1年,但可以通过传递到ParseServer对象的构造函数中的配置参数进行扩展。

  2. 使用匿名帐户时,这是一种灾难情况。根据设计,会话到期后,用户无法重新进行身份验证,因此他们只会丢失所有数据。

  3. 阅读Parse Server源代码,我发现了另一个配置设置expireInactiveSessions,默认为true。我能够将配置选项设置为false,现在expiresAt集合上的Sessionundefined。现在,匿名用户会话永不过期。

  4. 就我而言,我使用匿名用户,但允许用户使用电子邮件身份验证创建真实帐户。不幸的是,现在这些会话也永远不会过期。我没有尝试过,但是我认为您可以在Session集合上设置触发器,以使基于电子邮件的帐户过期,并且匿名会话永不过期。这将是理想的解决方案。