微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

保存PFUser会导致sessionToken更新

如何解决保存PFUser会导致sessionToken更新

在我的项目中,我有一个PFUser的子类,称为FRUser。目前,我面临的问题是,一旦我修改用户并保存这些更改,例如使用以下代码,解析将更新会话令牌。

let user = FRUser.current()
user?.fullName = "Test"
user?.saveInBackground()

这里的问题是,我需要手动小心,不要与用户对象的保存一起调用CloudCode函数,因为如果这样做,我会遇到invalid session token 209错误。那是预期的行为吗?或者我该如何避免呢?

我在sashido.io上托管的iOS和Parse Server v3.6.0上使用的解析版本为1.19.0

自从每次启动后我都要更新FRUser.current()对象以来,在加载数据时遇到了很多无效的会话令牌错误,因此我开始使用以下代码来研究此问题。

class SessionController {
    static let shared = SessionController()
    var currentSessionToken: String?
    
    private init() {
        guard let st = FRUser.current()?.sessionToken else { currentSessionToken = nil; return }
        currentSessionToken = st
        startPolling()
    }
    
    private func startPolling() {
        dispatchQueue.main.asyncAfter(deadline: .Now() + 0.05) {
            guard let oldSt = self.currentSessionToken,let newSt = FRUser.current()?.sessionToken else { return }
            if oldSt != newSt {
                print("Did update session token!")
                print("Old Session token: \(oldSt)")
                print("New Session token: \(newSt)")
                self.currentSessionToken = newSt
            }
            self.startPolling()
        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。