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