Swift OSX - Parse.com - 保存新用户而不改变
Swift OSX - Parse.com - Save new user without changing
我正在尝试使用 Parse 在我的数据库中添加新用户。我无法不调用注册方法直接保存新用户,但注册后用户更改为注册用户,我想保留之前使用该软件的同一用户。
我在 Whosebug 的这个 link 上发现我需要保存预览会话,在新用户注册过程之后我可以调用方法 become
来恢复在使用保存的会话之前正在使用的用户,但它返回给我一个错误:[Error]: invalid session token (Code: 209, Version: 1.15.3)
。这是代码:
Usuario.swift
import Foundation
import Parse
class Usuario: PFUser {
@NSManaged var nome: String?
}
保存新用户的动作
@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")
}
})
}
}
我创建了一个 'Parse Cloud' 方法,允许我使用 'Master Key'
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");
}
});
});
我正在尝试使用 Parse 在我的数据库中添加新用户。我无法不调用注册方法直接保存新用户,但注册后用户更改为注册用户,我想保留之前使用该软件的同一用户。
我在 Whosebug 的这个 link become
来恢复在使用保存的会话之前正在使用的用户,但它返回给我一个错误:[Error]: invalid session token (Code: 209, Version: 1.15.3)
。这是代码:
Usuario.swift
import Foundation
import Parse
class Usuario: PFUser {
@NSManaged var nome: String?
}
保存新用户的动作
@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")
}
})
}
}
我创建了一个 'Parse Cloud' 方法,允许我使用 'Master Key'
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");
}
});
});