Cordova 应用程序在 Android 上未收到基本身份验证挑战的问题

Posted

技术标签:

【中文标题】Cordova 应用程序在 Android 上未收到基本身份验证挑战的问题【英文标题】:Issue with Cordova app not receiving Basic Auth challenge on Android 【发布时间】:2013-02-08 15:54:38 【问题描述】:

我有一个需要基本身份验证的基于 Cordova 的应用程序。身份验证是使用 AJAX 在 javascript 中完成的。我遇到了一个问题,如果用户输入无效的凭据,客户端永远不会收到服务器发送的 401 Unauthorized 响应。相反,请求超时。我可以通过设置 async:false 参数在 ios 上解决此问题:iOS: Authentication using XMLHttpRequest - Handling 401 reponse,但它不能解决 android 上的问题。关于如何解决这个问题的任何建议?让用户等待超时以知道他们输入了无效密码并不是最佳选择。提前致谢!

【问题讨论】:

您使用 Worklight 标记了这个问题。您在使用 Worklight 身份验证吗? 我们使用的是 Cordova,而不是 Worklight。 请发布您的 html 文件。可能是内容安全策略阻止了响应。 【参考方案1】:

从 IBM developerWorks 论坛http://www.ibm.com/developerworks/forums/post!reply.jspa?threadID=470690 中的同一个问题来看,这似乎是一个与 Worklight 相关的问题。

====

Basic Authenticator 不适用于移动应用程序的上下文。 为此,我建议使用基于适配器的身份验证。

使用基于适配器的身份验证,除了超时之外,您还具有 onSuccess 和 onFailure。因此,如果提供的凭据不正确,您不必等待超时,而是会收到 onFailure。

请参阅 IBM Worklight 的入门页面中的以下主题:

https://www.ibm.com/developerworks/mobile/worklight/getting-started/#authentication

更具体地说:

ftp://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v505/Module_20_-_Authentication_Concepts.pdf ftp://public.dhe.ibm.com/software/mobile-solutions/worklight/docs/v505/Module_22_-_Adapter_Based_Authentication.pdf

【讨论】:

我们直接使用 Cordova,而不是 Worklight。 我删除了 Worklight 标签。鉴于 Worklight 使用 Cordova,我想扩大受众。道歉。

以上是关于Cordova 应用程序在 Android 上未收到基本身份验证挑战的问题的主要内容,如果未能解决你的问题,请参考以下文章

在 Cordova gradle -v 中显示 gradle 版本,但在 cordova 要求上未安装 gradle

IOS 上未收到 Cordova FCM 通知,而应用程序在后台

在某些 Android 设备上未发现 Chromecast 设备

Android Oreo 上未添加地理围栏

在 android 中关闭应用程序时,在真实设备上未收到一个信号通知

使用 android fused location api 在 MyLocation 上未显示蓝点