[英]save credit card info by encrypting to database
我的用例是,用户应该能够将信用卡信息(如信用卡号、卡上姓名、到期日和卡类型)保存到数据库中。 信用卡信息非常关键。 它需要加密。 我知道最好使用条带将这些信息保存到他们的服务器,但目前我不确定我将使用什么平台。 出于临时目的,如果我必须保存这些详细信息,我应该怎么做? 我还需要将这些详细信息发送到前端(反应应用程序) ,这样我就可以向用户展示他们有以下可以用来付款的卡片。 我不会显示信用卡号,只显示信用卡,但要付款,我需要从服务器取回这些信息,这样我就可以在付款时自动填写这些详细信息。
这是我尝试的方法,但对于加密,我使用了 bcrypt。 由于 bcrypt 是一种算法,我无法在前端解码以自动填充支付处理器库中的详细信息。
const hashPassword = async (password) => {
const saltRounds = 10;
return await bcrypt.hash(password, saltRounds);
}
saveCard: combineResolvers(
async (parent, { input: { userId, cardData } }, { req }) => {
try {
const existingUser = await req.db
.collection('User')
.findOne({
_id: userId,
});
if (!existingUser) {
// raise user not found error
}
const creditCardObj = await validateCreateCreditCardSchema(
req,
cardData,
);
creditCardObj.creditCardNumber = await hashPassword(
cardData.creditCardNumber,
); // uses salted hash
creditCardObj.userId = userId;
const creditCardRes = await req.db
.collection('CreditCard')
.insertOne(creditCardObj);
if (creditCardRes.result.n > 0) {
// return success response
} else {
// error occured message
}
} catch (err) {
// internal server error
}
},
注意:我没有使用任何支付处理器。 我只是mocking的过程。 由于我不确定,我将使用什么支付平台。 Stripe 支持将卡片详细信息保存到其服务器并获取已保存卡片的列表并稍后收费但不确定我稍后选择的平台是否支持此功能。 所以我现在只想通过将这些详细信息保存在我的数据库中来模仿,并让这些详细信息尽可能安全地自动填充。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.