React и Loopback 3 проверяют электронную почту пользователя
Я создал компонент регистрации с использованием React и Loopback 3. Сначала я не использовал проверку электронной почты. В приведенном ниже коде я получал ответ от остальных API о создании пользователя.
export function signUpUser(user) {
let userEmail = user.email;
let userPassword = user.password;
let userName = user.userName;
let privilege="user"
let credentials = {
email: userEmail,
password: userPassword,
userName: userName,
privilege:privilege
};
//console.log(credentials);
return dispatch => {
axios
.request({
method: "post",
url: loopBack + "/blogusers",
data: credentials
})
.then(response => {
console.log(response)
return dispatch(signUpSuccess(response.data));
})
.catch(error => {
return dispatch(signUpFailure(error));
});
};
}
Моя пользовательская модель JS была, что
"use strict";
module.exports = function(Bloguser) {
};
После того, как я добавил хук для создания API, моя пользовательская модель JS такова.
"use strict";
var config = require("../../server/config.json");
var path = require("path");
var senderAddress = "jp6t63je22rfqgf7@ethereal.email";
module.exports = function(Bloguser) {
//send verification email after registration.
Bloguser.afterRemote("create", function(context, userInstance, next) {
console.log(">user.afterRemote triggered");
var options = {
type: "email",
to: userInstance.email,
from: senderAddress,
subject: "Thanks for registering.",
template: path.resolve(__dirname, "../../server/views/verify.ejs"),
Bloguser: userInstance
};
userInstance.verify(options, function(err, response) {
if (err) {
Bloguser.deleteById(userInstance.id);
return next(err);
}
console.log(">verification email sent.", response);
context.res.render("response", {
title: "Signed up successfully",
content:
"Please check your email and click on the verification link" +
"before logging in.",
redirectTo: "/login",
redirectToLinkText: "Log in"
});
});
});
};
С помощью этого кода я могу успешно отправить письмо с подтверждением, и я могу подтвердить пользователя по ссылке в письме. Однако я не могу получить ответ от Post api в функции signUpUser(). Мне нужно получить ответ, чтобы показать статус пользователя в процессе регистрации
1 ответ
Я изменился
context.res.render("response", {
title: "Signed up successfully",
content:
"Please check your email and click on the verification link" +
"before logging in.",
redirectTo: "/login",
redirectToLinkText: "Log in"
});
с
context.res.status(200).send(userInstance)
И Вуаля это сработало.