因此,在我的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
答案 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:
@auth0/cordova
需要使用多个Cordova插件。使用以下命令安装safariviewcontroller
和customurlscheme
。
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 /回调
当然,请通过以下评论告诉我这是否无法解决您的问题。祝你好运。