使用 cordova 的 auth0 快速入门指南的问题
Problems using auth0 Quick Start Guide for cordova
因此,在将 auth0 集成到我的 cordova 应用程序中遇到问题后,我决定 运行 官方提供 sample app。但是在按照提供的说明进行操作后,我仍然无法使其工作。
我收到
的错误
Error in Success callbackId: SafariViewController1859440610 : TypeError: Object.assign is not a function
我找不到 google 上报告的任何类似问题,也不知道如何跟踪它。任何线索和帮助将不胜感激。
我的 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
允许的回调 URL 设置为
并且允许的来源 (CORS) 是 file://*
听起来您可能没有安装必要的 Cordova 插件。摘自 readme with the quickstart sample:
安装 Cordova 插件
与 @auth0/cordova
一起使用需要几个 Cordova 插件。使用以下命令安装 safariviewcontroller
和 customurlscheme
。
cordova plugin add cordova-plugin-safariviewcontroller
cordova plugin add cordova-plugin-customurlscheme --variable
URL_SCHEME={YOUR_PACKAGE_ID} --variable
ANDROID_SCHEME={YOUR_PACKAGE_ID} --variable
ANDROID_HOST={YOUR_AUTH0_DOMAIN} --variable
ANDROID_PATHPREFIX=/cordova/{YOUR_PACKAGE_ID}/callback
安装 cordova-plugin-customurlscheme
时使用的变量与在您的 Auth0 控制面板中用于设置 回调 URL 的变量相同。
换句话说,只需 运行 在您最喜欢的命令提示符/终端中执行上述两个命令。第二条指令看起来有点让人不知所措——但如果你使用的是默认包 ID(快速入门附带的)——那么只需使用:
cordova plugin add cordova-plugin-customurlscheme --variable
URL_SCHEME=com.auth0.cordova.example --variable
ANDROID_SCHEME=com.auth0.cordova.example --variable
ANDROID_HOST={YOUR_TENANT}.auth0.com --variable
ANDROID_PATHPREFIX=/cordova/com.auth0.cordova.example/callback
并将 {YOUR_TENANT} 替换为您自己的 Auth0 租户。
顺便说一下,您的 Auth0 仪表板中允许的回调 URL 也应该如下所示(同样,假设您使用的是默认包标识符):
com.auth0.cordova.example://{YOUR_TENANT}.auth0.com/cordova/com.auth0.cordova.example/callback
当然,如果这不能解决您的问题,请在下方留言告诉我。祝你好运。
我在 android 中实现 Auth0 时遇到了类似的错误,如本文所述
link https://github.com/pburtchaell/react-notification/issues/65,我在 "webpack.config.js" 文件的入口点添加了 'babel-polyfill'。
entry: ['babel-polyfill','./src/index.js'],
现在 Auth0 在我的 android 应用程序中工作正常。
因此,在将 auth0 集成到我的 cordova 应用程序中遇到问题后,我决定 运行 官方提供 sample app。但是在按照提供的说明进行操作后,我仍然无法使其工作。 我收到
的错误Error in Success callbackId: SafariViewController1859440610 : TypeError: Object.assign is not a function
我找不到 google 上报告的任何类似问题,也不知道如何跟踪它。任何线索和帮助将不胜感激。 我的 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
允许的回调 URL 设置为 file://*
听起来您可能没有安装必要的 Cordova 插件。摘自 readme with the quickstart sample:
安装 Cordova 插件
与 @auth0/cordova
一起使用需要几个 Cordova 插件。使用以下命令安装 safariviewcontroller
和 customurlscheme
。
cordova plugin add cordova-plugin-safariviewcontroller
cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME={YOUR_PACKAGE_ID} --variable ANDROID_SCHEME={YOUR_PACKAGE_ID} --variable ANDROID_HOST={YOUR_AUTH0_DOMAIN} --variable ANDROID_PATHPREFIX=/cordova/{YOUR_PACKAGE_ID}/callback
安装 cordova-plugin-customurlscheme
时使用的变量与在您的 Auth0 控制面板中用于设置 回调 URL 的变量相同。
换句话说,只需 运行 在您最喜欢的命令提示符/终端中执行上述两个命令。第二条指令看起来有点让人不知所措——但如果你使用的是默认包 ID(快速入门附带的)——那么只需使用:
cordova plugin add cordova-plugin-customurlscheme --variable URL_SCHEME=com.auth0.cordova.example --variable ANDROID_SCHEME=com.auth0.cordova.example --variable ANDROID_HOST={YOUR_TENANT}.auth0.com --variable ANDROID_PATHPREFIX=/cordova/com.auth0.cordova.example/callback
并将 {YOUR_TENANT} 替换为您自己的 Auth0 租户。
顺便说一下,您的 Auth0 仪表板中允许的回调 URL 也应该如下所示(同样,假设您使用的是默认包标识符):
com.auth0.cordova.example://{YOUR_TENANT}.auth0.com/cordova/com.auth0.cordova.example/callback
当然,如果这不能解决您的问题,请在下方留言告诉我。祝你好运。
我在 android 中实现 Auth0 时遇到了类似的错误,如本文所述 link https://github.com/pburtchaell/react-notification/issues/65,我在 "webpack.config.js" 文件的入口点添加了 'babel-polyfill'。
entry: ['babel-polyfill','./src/index.js'],
现在 Auth0 在我的 android 应用程序中工作正常。