Генерация JWT в реакции родной

Я пытаюсь сгенерировать JWT в React Native. react-native-jwt модуль основан на Node's jwt-simple, Оно использует react-native-crypto, который является частичным клоном crypto-browserify с определенными обходными путями, чтобы получить crypto работать за пределами веб-браузера.

Проблема в том, что randombytes (Зависимость react-native-jwt) не могу найти crypto,

browser.js:

'use strict'

function oldBrowser () {
  throw new Error('secure random number generation not supported by this browser\nuse chrome, FireFox or Internet Explorer 11')
}

var crypto = global.crypto || global.msCrypto // GETS SET TO 'UNDEFINED'

if (crypto && crypto.getRandomValues) {
  module.exports = randomBytes
} else {
  module.exports = oldBrowser
}

function randomBytes (size, cb) {
  // phantomjs needs to throw
  if (size > 65536) throw new Error('requested too many random bytes')
  // in case browserify  isn't using the Uint8Array version
  var rawBytes = new global.Uint8Array(size)

  // This will not work in older browsers.
  // See https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues
  if (size > 0) {  // getRandomValues fails on IE if size == 0
    crypto.getRandomValues(rawBytes)
  }
  // phantomjs doesn't like a buffer being passed here
  var bytes = new Buffer(rawBytes.buffer)

  if (typeof cb === 'function') {
    return process.nextTick(function () {
      cb(null, bytes)
    })
  }

  return bytes
}

Примечание. Похоже, что криптография доступна только на Android, и она мне нужна на iOS.

0 ответов

Другие вопросы по тегам