0

客户端代码尝试调用适配器。这会触发对适当领域的身份验证。用户可能没有合适的凭据并最终想要停止尝试。我可以提供一个“放弃”按钮,我们可以使用 challegeHandler 告诉 Worklight 停止身份验证工作,如下所示:

this.challengeHandler.submitFailure();

这在登录尝试终止的情况下起作用,但似乎调用适配器的代码没有得到回调,因此任何可能正在等待解析的 Deferred 对象都处于不确定状态。

问题是我们是否可以安排将身份验证失败返回给适配器过程的调用者?

4

2 回答 2

2

我已获悉此问题的解决方法,您可以致电:

challengeHandler.activeRequest.onUnresponsiveHost() 

在实际调用之前:

challengeHandler.submitFailure()

这将触发失败并按预期拒绝延迟。

这是一种解决方法,因此它可能在将来的版本中不起作用。我将提出增强请求(链接待定),如果您也可以投票以确保将来可以使用此功能,我将不胜感激。

于 2013-08-05T09:56:03.827 回答
1

首先, submitFailure() 不会调用适配器。它将通知客户端框架身份验证完全失败,因此框架将处理所有等待身份验证完成的存储请求。

如果您想在服务器端擦除用户身份,您有两个选择

  1. 创建一个不需要身份验证的适配器过程并调用 WL.Server.setActiveUser("realm-name",null)。这将终止任何用户身份。
  2. 在您的应用中调用 WL.Client.logout("realm-name")
于 2013-05-28T09:30:54.857 回答