2017-10-02 4 views
0

Ich versuche, neue Benutzer in meiner Datenbank mit Parse hinzuzufügen. Ich kann den neuen Benutzer nicht direkt speichern, ohne die Anmeldemethode aufzurufen, aber nach der Anmeldung wechselt der Benutzer zu dem angemeldeten Benutzer und ich möchte den Benutzer, der die Software zuvor verwendet hat, beibehalten.Swift OSX - Parse.com - Speichern Sie neue Benutzer ohne Änderung

Ich habe über diesen Link here in StackOverflow, dass ich die Vorschau Sitzungen speichern muss und nach dem neuen Benutzer Anmeldung Prozess kann ich die Methode become aufrufen, um den Benutzer, der vor der Verwendung der gespeicherten Sitzung verwendet wurde, aber es wiederherzustellen gibt mir einen Fehler zurück: [Error]: invalid session token (Code: 209, Version: 1.15.3). Hier ist der Code:

Usuario.swift

import Foundation 

import Parse 

class Usuario: PFUser { 

    @NSManaged var nome: String? 
} 

Die Aktion dem neuen Benutzer

@IBAction func adicionarGerenciadorButtonClicked(_ sender: NSButton) { 

    let gerenciador = Usuario() 

    gerenciador.nome = nomeGerenciadorTextField.stringValue 
    gerenciador.username = emailGerenciadorTextField.stringValue 
    gerenciador.email = emailGerenciadorTextField.stringValue 
    gerenciador.password = senhaGerenciadorSecureTextField.stringValue 

    let gerenciadorTokenAtual = Usuario.current()!.sessionToken 
    print(gerenciadorTokenAtual) 

    gerenciador.signUpInBackground(block: { 
      (success, error) -> Void in 

      do { 
       try Usuario.become(gerenciadorTokenAtual!) 
      } catch { 

      } 

      if error == nil { 
       self.gerenciadores.append(gerenciador) 

       self.nomeGerenciadorTextField.stringValue = "" 
       self.emailGerenciadorTextField.stringValue = "" 
       self.senhaGerenciadorSecureTextField.stringValue = "" 
      } else { 
       self.mostrarErro(mensagem: "Erro", informativo: "Houve um erro ao tentar salvar o gerenciador") 
      } 
     }) 
    } 
} 

Antwort

0

ich eine 'Parse Cloud' Methode erstellt zu speichern, die mir den 'Master Key' verwenden können

Parse.Cloud.define('salvarUsuario', function(request, response) { 

    var nomeCompleto = request.params.nomeCompleto; 
    var Email = request.params.Email; 
    var Username = request.params.Username; 
    var cpf = request.params.cpf; 
    var Password = request.params.Password; 
    var funcionarioBool = request.params.funcionarioBool; 
    var ativo = request.params.ativo; 
    var primeiroAcesso = request.params.primeiroAcesso; 
    var tipoAcesso = request.params.tipoAcesso; 
    var medicoBool = request.params.medicoBool; 

    //Parâmetros de controle 
    var fotoSelecionada = request.params.fotoSelecionada; 

    var usuario = new Parse.User(); 

    usuario.set("nomeCompleto", nomeCompleto); 
    usuario.set("email", Email); 
    usuario.set("username", Username); 
    usuario.set("cpf", cpf); 
    usuario.set("password", Password); 
    usuario.set("funcionarioBool", funcionarioBool); 
    usuario.set("ativo", ativo); 
    usuario.set("primeiroAcesso", primeiroAcesso); 
    usuario.set("tipoAcesso", tipoAcesso); 
    usuario.set("medicoBool", medicoBool); 

    if(medicoBool) { 
    var medicoId = request.params.medico; 
    var Medico = Parse.Object.extend("Medico"); 
    var medicoPointer = Medico.createWithoutData(medicoId); 
    usuario.set("medico", medicoPointer); 
    } 

    if(fotoSelecionada) { 
    var bytes = request.params.bytesFoto; 
    var file = new Parse.File("foto.png", bytes, "image/png"); 

    usuario.set("foto", file); 
    } 

    usuario.save(null, { 
     useMasterKey: true, 
     success: function(salvoUsuario){ 
      // The user was saved correctly 
      response.success("1"); 

     }, 
     error: function(error){ 
      response.error("Erro ao criar novo usuário"); 
     } 
    }); 
}); 
Verwandte Themen