我使用Auth0-lock创建身份验证对话框。我想在NodeJS文件中创建一个auth-lock对象。当我使用时:
const {Auth0Lock} = require('auth0-lock');
var lock = new Auth0Lock( MyClientId, MyDomain);
lock.show();
在我的NodeJS文件中,我收到以下错误:
C:\Users\....\node_modules\auth0-lock\lib\utils\url_utils.js:6
var parser = global.document.createElement('a');
^
TypeError: Cannot read property 'createElement' of undefined
我为它定义了一个虚拟dom元素,使用jsdom如下:
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM('<!DOCTYPE html><html><body.....</body></html>');
global.window = dom.window;
global.document = dom.window.document;
global.location = dom.window.document.location;
通过这个,上面的错误得到了解决,但是我没有向我显示auth0-lock身份验证对话框时出现了另一个错误。它是:
Error: An error occurred when fetching client data for Lock: https://cdn.auth0.com/client/[MyClientId].js
搜索显示此错误表示Lock无法连接到Auth0 CDN以获取客户端。但是当我使用auth0 cdn链接并使用脚本在html文件中创建auth-lock对话框时如下:
<script src="https://cdn.auth0.com/js/lock/10.23.1/lock.min.js"></script>
<script>
var lock = new Auth0Lock( MyClientId, MyDomain);
lock.show();
</script>
它使用完全相同的&#34; MyClientId&#34;并向我展示了对话框。
您是否愿意帮助我解决此问题并在我的NodeJS文件中显示对话框?
由于