这是一个错误吗?或者匿名用户工作流程有何不同?

时间:2016-07-03 03:52:20

标签: ios parse-server

问题说明

我正在使用最新版本的parse-server和最新的iOS SDK来创建一个涉及匿名用户的简单注册流程。发生的情况是用户在尝试注销时收到以下错误:

  

会话令牌无效(代码:209,版本:1.13.0)

重现的步骤

我的应用程序启动,以下代码在我的AppDelegate.swift文件中执行。

let parseConfig = ParseClientConfiguration {
        $0.applicationId = "insertAppIdHere"
        $0.clientKey = "insertClientKeyHere"
        $0.server = "https://MyParseServer.com/parse"
    }
    Parse.initializeWithConfiguration(parseConfig)

    PFUser.enableAutomaticUser()
    PFUser.currentUser()!.saveInBackground()

似乎没有任何问题发生。

现在,我使用iOS SDK中的signUp函数注册用户,将其帐户从匿名状态转换为正常(非匿名)状态。填写许多字段并点击“注册”按钮后会发生这种情况。

        let user = PFUser.currentUser()!
        user.username = self.emailTextField.text
        user.password = self.passwordTextField.text
        user.email = self.emailTextField.text
        user.signUpInBackgroundWithBlock({ (succeed, error) -> Void in
            if (error == nil) {
                self.dismissViewControllerAnimated(true, completion: nil)
            } else {
                print(error!.description)
            }
        })

此时,服务器上似乎没有会话令牌。这是一个问题。

现在我点按一个按钮退出。

PFUser.logOutInBackgroundWithBlock({(error) -> Void in
            if (error == nil) {
                logOutBarButton.enabled = true
                self.dismissViewControllerAnimated(true, completion: nil)
            } else {
                logOutBarButton.enabled = true
                let errorVC = UIAlertController(title: "Oops..", message: "You Cannot Log Out at the Moment.", preferredStyle: .Alert)
                errorVC.addAction(UIAlertAction(title: "OK", style: .Default, handler: { action in }))
                self.presentViewController(errorVC, animated: true, completion: nil)
            }

        })

并在控制台中获取错误(按预期方式):无效的会话令牌(代码:209,版本:1.13.0)

预期结果

我不应该看到错误,在服务器上注册后应该有一个有效的会话令牌。

实际结果

会话令牌无效(代码:209,版本:1.13.0) 环境设置

服务器         解析服务器版本:2.2.15         托管于:Google App Engine

数据库         MongoDB版本:3.0.12         主持:mLab

附加说明

请注意,每次进行此测试时,我都会确保数据库为空。这也意味着我不会从原始解析中迁移任何内容。

第二次注销成功,但我认为这是因为它只是将currentUser本地设置为nil。

整个事情可能是对匿名用户如何工作的误解(进一步说明会有所帮助)。我几乎可以肯定,这可能适用于原始解析,因为我在github上的存储库中看到了类似的实现。示例:(https://github.com/appflock/open/blob/master/ios/Reveal/AppDelegate.m

如何在解析服务器上使用匿名用户时停止发生此错误?

1 个答案:

答案 0 :(得分:1)

希望能够在即将发布的2.2.17

中修复