Javascript 在react-native中生成JWT
我试图在React Native中生成JWT。Javascript 在react-native中生成JWT,javascript,ios,cryptography,react-native,jwt,Javascript,Ios,Cryptography,React Native,Jwt,我试图在React Native中生成JWT。react native jwt模块基于节点的jwt simple。它使用react native crypto,这是crypto-browserify的一个部分克隆,具有某些解决方法,以使crypto在web浏览器之外工作 问题是randombytes(react native jwt的子依赖项)找不到crypto browser.js: 'use strict' function oldBrowser () { throw new Erro
react native jwt
模块基于节点的jwt simple
。它使用react native crypto
,这是crypto-browserify
的一个部分克隆,具有某些解决方法,以使crypto
在web浏览器之外工作
问题是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上使用它