Я могу сгенерировать случайный одноразовый номер на сервере, и он отображается на консоли, но это значение не возвращается клиенту.
Метод сервера:
Meteor.methods({
'user.generateNewLoginAttempt': function(user_address) {
let exists = Meteor.users.findOne({
username: user_address
});
let nonce = Random.secret(16);
console.log(nonce); //shows random string
if (exists) {
// user already exists, update nonce
Meteor.users.update(exists._id, {
$set: {
nonce: nonce
}
});
} else {
// create new user
let userId = Accounts.createUser({
username: user_address,
address: user_address,
nonce: nonce
});
}
return nonce;
},
});
Код клиента:
Meteor.call('user.generateNewLoginAttempt', user_address, function(err, nonce) {
if (err)
console.log(err);
/shows up internal server error
// nonce = the nonce generated on server
else {
console.log('nonce: ' + nonce);
// hash nonce
let sh3_nonce = web3.sha3(nonce); // depending on web3 version use: web3.utils.sha3(nonce)
console.log('sh3 hashed nonce: ' + sh3_nonce);
// sign hashed nonce
web3.eth.sign(user_address, sh3_nonce, function(err, res) {
if (err) {
console.log(err);
} else {
// res = the signed nonce
// login with signed nonce
login(res);
}
});
}
});
На стороне клиента отображается Internal Server Error(500)
.Я попытался удалить большую часть кода из метода сервера и просто вернуть какое-то значение, но это также не работает.