在我的Parse Web应用程序中,我有一个管理员可以访问的用户管理页面。此页面允许管理员创建新的用户帐户。
要创建帐户,我使用Parse.User.signUp()
。
它运行良好,但它具有重置当前用户会话的令人讨厌的副作用,这会导致创建新用户帐户的管理员注销。
这实际上是User.signUp()
的{{3}}行为:
这将在服务器上创建一个新的Parse.User,并在localStorage中保存会话,以便您可以使用#current访问该用户。
但我想在不改变当前用户的情况下创建新用户。我该怎么做?
答案 0 :(得分:9)
在使用User.signUp
创建新用户帐户之前,请保存当前用户的sessionToken
。然后,在创建新用户后,使用User.become
:
var sessionToken = Parse.User.current().getSessionToken();
Parse.User.signUp(username, password).then(function(newUser) {
Parse.User.become(sessionToken);
});
答案 1 :(得分:0)
我可以创建一个' Parse Cloud'允许您使用'主密钥'的方法并使用Cloud从SDK中调用它。
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");
}
});
});