Parse 平台中会话过期时重复的匿名用户

Posted

技术标签:

【中文标题】Parse 平台中会话过期时重复的匿名用户【英文标题】:Duplicated anonymous users when session expired in Parse platforms 【发布时间】:2020-04-08 06:07:07 【问题描述】:
if let cachedUser = PFUser.current() 
    // proceed to save some objects
 else 
    PFAnonymousUtils.logIn (user, error) in
        // proceed to save some objects
        if ((error as NSError).code == 209) 
            // session expired, logout and call PFAnonymousUtils.logIn again later
            PFUser.logOut()
        
    

对于一个简单的 Swift 移动应用程序,我们将数据匿名保存在解析后端。如果出现会话过期错误(Parser 服务器默认为 1 年),我们将不得不对此采取措施,否则我们将无法再保存任何内容。因此,我们注销并重新登录。

一旦我们注销并重新登录,这将在后端创建第二个新用户。

这产生了一个问题 - 我们不再准确了解后端的用户数量。

上面的流程出了什么问题?有没有办法在处理过期会话时防止重复的匿名用户?

【问题讨论】:

我不确定,但我会说这是预期的行为,匿名用户的全部意义在于,如果他们的“帐户”可以在会话过期后重新登录,那么他们就是匿名的成为安全漏洞。有什么理由不能延长会话持续时间? @TomFox 是的,我正在考虑设置更长的会话持续时间,例如5年而不是1年,理论上是延迟问题。但是,是的,我想我会这样做。谢谢:) 您可能会发现此线程很有用 - github.com/parse-community/parse-server/issues/4799。特别是在服务器配置中使用 expireInactiveSessions: false 来阻止会话过期 - 但我不确定这会产生什么影响。 @TomFox 超级相关。我一定会试一试的!您也可以将此作为答案发布。 @TomFox 这行得通。 expireInactiveSessions: false 是这个问题的答案! 【参考方案1】:

可以在您的服务器配置中增加默认会话持续时间。

您还可以将以下代码添加到您的服务器配置中...

expireInactiveSessions: false

此thread 可能会提供有关此问题的更多有用见解。

【讨论】:

以上是关于Parse 平台中会话过期时重复的匿名用户的主要内容,如果未能解决你的问题,请参考以下文章

不要为匿名用户启动会话

python 为匿名django用户创建会话

Spring Stomp SimpUserRegistry 匿名用户

Drupal:显示匿名用户但未经过身份验证的用户的重复内容的视图

Firebase 身份验证会话未过期 [重复]

如何坚持匿名用户选择(例如:主题选择)