在班级_Session
的解析仪表板中,正在保存所有sessionTokens
。
以下操作似乎会触发创建:
第一个问题是:是否还有其他操作可以创建新的会话令牌?
而且:我看到所有令牌都有一个expiresAt字段。哪个始终在令牌createdAt
后1年设置。我可以延长这段时间(例如2年)吗?
最后:如果此令牌过期,并且用户使用我的应用程序,那么会发生什么?该应用程序将需要新登录(因此将创建一个新令牌)?
答案 0 :(得分:2)
纠正行动。
Parse-server允许在初始化时提前选项。使用sessionLength
设置到期日期
如果您使用环境变量,它将是PARSE_SERVER_SESSION_LENGTH
。
sessionLength
- 会话有效的时间长度(以秒为单位)。默认为31536000秒(1年)。
取决于你做客户端的事情。如果会话已过期,您可以强制注销。
另请注意,尝试使用已过期的会话运行云代码时,将显示以下错误:{"code":209,"message":"Session token is expired."}
答案 1 :(得分:0)
我只是碰到了这一点,并希望以公认的答案为基础。
是的,默认sessionLength为1年,但可以通过传递到ParseServer对象的构造函数中的配置参数进行扩展。
使用匿名帐户时,这是一种灾难情况。根据设计,会话到期后,用户无法重新进行身份验证,因此他们只会丢失所有数据。
阅读Parse Server源代码,我发现了另一个配置设置expireInactiveSessions
,默认为true。我能够将配置选项设置为false,现在expiresAt
集合上的Session
是undefined
。现在,匿名用户会话永不过期。
就我而言,我使用匿名用户,但允许用户使用电子邮件身份验证创建真实帐户。不幸的是,现在这些会话也永远不会过期。我没有尝试过,但是我认为您可以在Session
集合上设置触发器,以使基于电子邮件的帐户过期,并且匿名会话永不过期。这将是理想的解决方案。