根据MDM(https://developer.mozilla.org/en-US/docs/Web/API/Crypto/randomUUID),大多数现代浏览器支持javascript原生加密API,该api支持以前的node-js加密标准。
根据plain js中的这篇文章,我可以通过以下方式创建uuid
crypto.randomUUID()
有什么方法可以在react中使用这个接口吗?因为crypto似乎在react中引用了一个完全不同的对象。
ps.我知道UUID包的存在,也知道这是生成UUID的常用方法,我只是好奇。
3条答案
按热度按时间7rtdyuoh1#
(2023年的现代解决方案)
NextPage
类型),因此需要添加import crypto from 'crypto'; crypto.randomUUID()
以在服务器上生成唯一的id。1.在HTML页面作为预呈现的结果返回到浏览器后,您需要使用
window.crypto.randomUUID()
,因为crypto.randomUUID()
来自服务器环境中的Node.js包,而不是浏览器中的。U可以在代码中添加以下检查:请参阅Next.js文档中的安全访问Web API以了解更多信息。
9w11ddsr2#
我想你是对的,React中的crypto包是不同的,要使用NodeJs中的crypto包,你可以调用:
window.crypto
我把它放在if中以确保它只在浏览器中呈现。
或
jtjikinw3#
window.crypto.randomUUID()
是好的。但是请注意crypto.randomUUID()
只在安全上下文(HTTPS)中可用。当您在HTTP站点上时,它将导致TypeError: window.crypto.randomUUID is not a function
。所以应该是这样的: