cordova使用auth0快速入门指南时出现的问题

cordova使用auth0快速入门指南时出现的问题,cordova,auth0,Cordova,Auth0,因此,在将auth0集成到我的cordova应用程序中遇到问题后,我决定运行官方提供的应用程序。但在遵循提供的说明后,我仍然无法使其工作。 我得到的错误是 Error in Success callbackId: SafariViewController1859440610 : TypeError: Object.assign is not a function 我在谷歌上找不到任何类似的问题,也不知道如何追踪。任何线索和帮助都将不胜感激。 我的plugins/fetch.json如下所示 {

因此,在将auth0集成到我的cordova应用程序中遇到问题后,我决定运行官方提供的应用程序。但在遵循提供的说明后,我仍然无法使其工作。 我得到的错误是

Error in Success callbackId: SafariViewController1859440610 : TypeError: Object.assign is not a function
我在谷歌上找不到任何类似的问题,也不知道如何追踪。任何线索和帮助都将不胜感激。 我的plugins/fetch.json如下所示

{
"cordova-plugin-inappbrowser": {
    "source": {
        "type": "registry",
        "id": "cordova-plugin-inappbrowser@~1.3.0"
    },
    "is_top_level": true,
    "variables": {}
},
"cordova-plugin-whitelist": {
    "source": {
        "type": "registry",
        "id": "cordova-plugin-whitelist@~1.2.1"
    },
    "is_top_level": true,
    "variables": {}
},
"cordova-plugin-customurlscheme": {
    "source": {
        "type": "registry",
        "id": "cordova-plugin-customurlscheme@^4.3.0"
    },
    "is_top_level": true,
    "variables": {
        "URL_SCHEME": "com.auth0.cordova.example",
        "ANDROID_SCHEME": "com.auth0.cordova.example",
        "ANDROID_HOST": "tsm-test.eu.auth0.com",
        "ANDROID_PATHPREFIX": "/cordova/com.auth0.cordova.example/callback"
    }
},
"cordova-plugin-safariviewcontroller": {
    "source": {
        "type": "registry",
        "id": "cordova-plugin-safariviewcontroller"
    },
    "is_top_level": true,
    "variables": {}
}
}

我的config.xml是:

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.auth0.cordova.example" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:gap="http://phonegap.com/ns/1.0">
        <name>Auth0 Example</name>
        <description>
            Login sample application that responds to the deviceready event and authenticates using Auth0
        </description>
        <author email="support@auth0.com" href="http://auth0.com">
            Auth0 Team
        </author>
        <content src="index.html" />
        <preference name="DisallowOverscroll" value="true" />
        <preference name="android-minSdkVersion" value="16" />
        <platform name="android">
        </platform>
        <platform name="ios">
        </platform>
        <access origin="*" />
        <platform name="android">
            <allow-intent href="market:*" />
        </platform>
        <platform name="ios">
            <allow-intent href="itms:*" />
            <allow-intent href="itms-apps:*" />
        </platform>
        <preference name="AndroidLaunchMode" value="singleTask" />
        <engine name="android" spec="^6.2.3" />
        <engine name="ios" spec="~4.4.0" />
        <plugin name="cordova-plugin-inappbrowser" spec="~1.7.1" />
        <plugin name="cordova-plugin-whitelist" spec="~1.3.2" />
        <plugin name="cordova-plugin-customurlscheme" spec="^4.3.0">
            <variable name="URL_SCHEME" value="com.auth0.cordova.example" />
            <variable name="ANDROID_SCHEME" value="com.auth0.cordova.example" />
            <variable name="ANDROID_HOST" value="tsm-test.eu.auth0.com" />
            <variable name="ANDROID_PATHPREFIX" value="/cordova/com.auth0.cordova.example/callback" />
        </plugin>
        <plugin name="cordova-plugin-safariviewcontroller" spec="^1.4.7" />
    </widget>

Auth0示例
响应deviceready事件并使用Auth0进行身份验证的登录示例应用程序

允许的源代码(CORS)是
文件://*

听起来您可能没有安装必要的Cordova插件。摘自:

安装Cordova插件 与
@auth0/Cordova
一起使用需要几个Cordova插件。使用以下命令安装
safariviewcontroller
customurlscheme

cordova插件添加cordova插件safariviewcontroller

cordova插件添加cordova插件customurlscheme--变量 URL_SCHEME={YOUR_PACKAGE_ID}--变量 ANDROID_SCHEME={YOUR_PACKAGE_ID}--变量 ANDROID_HOST={YOUR_AUTH0_DOMAIN}--变量 ANDROID_PATHPREFIX=/cordova/{YOUR_PACKAGE_ID}/callback

安装
cordova plugin customurlscheme
时使用的变量与在Auth0仪表板中设置回调URL时使用的变量相同

换句话说,只需在您最喜欢的commant提示符/终端中运行上述两个命令。第二条指令看起来有点让人不知所措-但是如果您使用的是默认的包id(quickstart附带的),那么只需使用:

cordova插件添加cordova插件customurlscheme--变量 URL_SCHEME=com.auth0.cordova.example——变量 ANDROID_SCHEME=com.auth0.cordova.example——变量 ANDROID_HOST={YOUR_TENANT}.auth0.com--变量 ANDROID_PATHPREFIX=/cordova/com.auth0.cordova.example/callback

并用自己的Auth0租户替换{YOUR_TENANT}

顺便说一下,Auth0仪表板中允许的回调URL也应该如下所示(同样,假设您使用的是默认的包标识符):

com.auth0.cordova.example://{YOUR_TENANT}.auth0.com/cordova/com.auth0.cordova.example/callback


当然,如果这不能解决您的问题,请在下面留下评论,让我知道。祝你好运。

在android中实现Auth0时,我遇到了类似的错误,如本文所述 链接,我在“webpack.config.js”文件的入口点添加了“babel polyfill”


现在Auth0在我的android应用程序中运行良好。

Hi@arceldon感谢您的回复。我已经按照说明安装了这两个插件。我将编辑该问题,以包括我的show config.xml所需的参数。我也不知道safariviewcontroller插件与android有什么关系。所以我删除了那个重新构建的插件,并尝试在我的android手机上运行,但也不起作用。试着用iOS模拟器看看它是否有效。你在Mac电脑上吗?我今天从一个新的下载测试了这个,它第一次起作用了。。。抱歉,如果这听起来没什么帮助,但只是让你放心,这个示例是有效的。但是我尝试过使用iOS模拟器。也许还可以尝试从你的模拟器/设备上卸载该应用程序,用鼠标点击你的iOS/android平台,删除节点模块,然后重新安装、构建和生成平台。我知道这听起来是一个很糟糕的建议,但偶尔它确实有效。我正在虚拟机中使用linux。尝试使用不同的PC和windows。但我在Mac电脑上构建了同样的软件包,并在iPhone上运行了该应用程序,它可以正常工作。
entry: ['babel-polyfill','./src/index.js'],