#node.js #expo
#node.js #выставка
Вопрос:
Итак, я пытаюсь создать одноразовый номер, следуя этому примеру кода
let randomString = uuid();
// create a sha256 of randomString, this will be the nonce sent to apple during authentication
const nonce = await Crypto.digestStringAsync(
Crypto.CryptoDigestAlgorithm.SHA256,
randomString
);
Однако этот пример предназначен для версии expo «Crypto», и я использую криптографию, встроенную в node.js и попытался сделать это
let randomString = uuid(); // <--- this just creates a random string for me
const nonce = await crypto
.createHmac('sha256', randomString)
.update(uuid())
.digest('string');
Но, похоже, это не создает одноразовый номер в нужном мне формате. Кто-нибудь, кто знает криптографию expo и криптографию, встроенную в node.js знаете, что я делаю не так? Я почти уверен, что я просто не использую nodejs crypto так же, как expo crypto example, так что, может быть, кто-нибудь, кто знает их обоих, может сказать мне, какой была бы nodejs crypto версия этого expo crypto example?
Ответ №1:
Формат дайджеста Expo по умолчанию — hex (doc)
параметры
CryptoDigestOptions
Формат строки дайджеста. По умолчанию:CryptoDigestOptions.HEX
Итак, вам просто нужно изменить .digest("string")
на .digest("hex")
let randomString = uuid()
const nonce = await crypto
.createHmac("sha256", randomString)
.update(uuid())
.digest("hex")