Ios 在parse.com中将匿名用户转换为登录用户时sessiontoken无效

Ios 在parse.com中将匿名用户转换为登录用户时sessiontoken无效,ios,swift,parse-platform,Ios,Swift,Parse Platform,我在iOS上使用Swift 我的应用程序有一个帖子列表。你可以匿名阅读,但你必须注册才能发帖 当你打开应用程序时,你会得到一个匿名帐户。我在AppDelegate中添加了以下内容 PFUser.enableAutomaticUser() PFUser.currentUser()?.incrementKey("RunCount") PFUser.currentUser()?.saveInBackground() 我从以下渠道获得代码: 当你去邮局的时候,我让你报名 let user = PFUs

我在iOS上使用Swift

我的应用程序有一个帖子列表。你可以匿名阅读,但你必须注册才能发帖

当你打开应用程序时,你会得到一个匿名帐户。我在AppDelegate中添加了以下内容

PFUser.enableAutomaticUser()
PFUser.currentUser()?.incrementKey("RunCount")
PFUser.currentUser()?.saveInBackground()
我从以下渠道获得代码:

当你去邮局的时候,我让你报名

let user = PFUser.currentUser()
user?.username = displayNameTextField.text
user?.password = passwordTextField.text
user?.email = emailTextField.text
user!.signUpInBackgroundWithBlock { ... }
这是成功的。我可以看到服务器上正在更新用户。但是我得到一个209错误:[错误]:无效的会话令牌(代码:209,版本:1.7.4)

我试着查看sessiontoken,并在每一步打印出来,结果都是一样的。我听说当用户注销时sessiontokens会失效,但我想我只是让用户登录而不是注销。为什么sessiontoken无效

我已经尝试使用sessiontoken将用户设置为PFUser.been()的当前用户,但这也不起作用


我显然忽略了一些东西,但我不知道是什么。非常感谢您的帮助。

如果您没有正确执行登录,请尝试此操作

func login() {
  var user = PFUser()
  user.username = "myUsername"
  user.password = "myPassword"
  user.signUpInBackgroundWithBlock {
    (succeeded: Bool, error: NSError?) -> Void in
    if let error = error {
      let errorString = error.userInfo?["error"] as? NSString
      // Show the errorString somewhere and let the user try again.
    } else {
      // Hooray! Let them use the app now.
    }
  }
}
代码
let user=PFUser.currentUser()
仅显示当前登录的用户

在创建任何请求之前,您还必须使用Parse进行身份验证,最好的方法是在函数
didfishlaunchingwithoptions

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
        Parse.setApplicationId("Your Id go Here", clientKey: "Your clientKey go here")
    return true
}
ID和clientKey的值在Parse中可用,并且对于您的帐户是唯一的


我希望这对你有帮助,祝你好运

同样的问题开始出现在我身上,我意识到这是由于在应用程序设置中启用了此选项:

Revoke existing session tokens when user changes password - YES/NO
我怀疑这是在匿名用户上设置密码的意外副作用-在这种情况下,我不认为有任何理由需要重置会话令牌


希望这会得到解决,但解决办法是在注册方法成功后立即调用logInWithUsername方法。

谢谢,但这会给我同样的结果。无效的会话令牌。谢谢,但我已通过解析验证。我开始怀疑这是否是一个bug。我怀疑这是一个bug,因为我多次使用它,请仔细检查您的密钥和ID,也许您是从另一个项目使用它。请问,您是否开始选择“新项目”或“现有项目?”“新项目”会给您一个空白的Xcode项目。“现有项目”为您提供了如何将解析框架添加到现有Xcode项目的指南。谢谢。聪明。请问,您是开始选择“新项目”还是“现有项目?”“新项目”会给您一个空白的Xcode项目。“现有项目”为您提供了如何将解析框架添加到现有Xcode项目的指南。我从一个现有的项目开始,但我只是试图重现问题以测试您的解决方案,并从“新项目”开始,我无法重现错误。就我个人而言,我总是从我自己的空白Xcode项目开始,并使用“现有项目”方法添加解析。不过,这不会对问题产生任何影响-我所说的设置位于www.parse.com上应用程序的“设置/常规”部分。我在空白启动程序中复制了这个问题,并提交给它作为一个bug进行解析。