使用auth0 cordova快速入门指南时遇到的问题

时间:2017-10-10 11:00:09

标签: cordova auth0

因此,在我的cordova应用程序中集成auth0时遇到问题后,我决定运行官方提供的sample app。但按照提供的说明后,我仍然无法使其正常工作。 我收到错误

Error in Success callbackId: SafariViewController1859440610 : TypeError: Object.assign is not a function

我无法在谷歌上发现任何类似的问题或知道如何跟踪它。任何线索和帮助将不胜感激。 我的plugiins / 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>

客户端中的域名为tsm-test.eu.auth0.com

允许的回拨网址设置为enter image description here 和允许的起源(CORS)是file://*

2 个答案:

答案 0 :(得分:1)

我在Android中实现Auth0时遇到了类似的错误,并且如此提到的那样 链接https://github.com/pburtchaell/react-notification/issues/65,我添加了&#39; babel-polyfill&#39;到我的&#34; webpack.config.js&#34;的入口点文件。

entry: ['babel-polyfill','./src/index.js'],

现在,我的Android应用程序中的Auth0工作正常。

答案 1 :(得分:0)

听起来您可能没有安装必要的Cordova插件。取自readme with the quickstart sample

安装Cordova插件

@auth0/cordova需要使用多个Cordova插件。使用以下命令安装safariviewcontrollercustomurlscheme

  

cordova插件添加cordova-plugin-safariviewcontroller

     

cordova插件添加cordova-plugin-customurlscheme - 变量   URL_SCHEME = {YOUR_PACKAGE_ID} - 变量   ANDROID_SCHEME = {YOUR_PACKAGE_ID} - 变量   ANDROID_HOST = {YOUR_AUTH0_DOMAIN} - 变量   ANDROID_PATHPREFIX = /科尔多瓦/ {YOUR_PACKAGE_ID} /回调

安装cordova-plugin-customurlscheme时使用的变量与用于在Auth0信息中心中设置回拨网址的变量相同。

换句话说,只需在您喜欢的commant提示符/ terminal中运行上面的这两个命令。第二条指令看起来有点压倒性 - 但如果您使用的是默认包ID(快速启动附带) - 那么只需使用:

  

cordova插件添加cordova-plugin-customurlscheme - 变量   URL_SCHEME = com.auth0.cordova.example --variable   ANDROID_SCHEME = com.auth0.cordova.example - 变量   ANDROID_HOST = {YOUR_TENANT} .auth0.com - 变量   ANDROID_PATHPREFIX = /科尔多瓦/ com.auth0.cordova.example /回调

并将{YOUR_TENANT}替换为您自己的Auth0租户。

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

  

com.auth0.cordova.example:// {YOUR_TENANT} .auth0.com /科尔多瓦/ com.auth0.cordova.example /回调

当然,请通过以下评论告诉我这是否无法解决您的问题。祝你好运。