适配器过程调用,报告身份验证失败

时间:2013-05-23 14:57:56

标签: ibm-mobilefirst worklight-security

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

this.challengeHandler.submitFailure();

这在登录尝试终止的程度上起作用,但似乎调用适配器的代码没有回调,因此可能正在等待解决的任何Deferred对象都处于不稳定状态。

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

2 个答案:

答案 0 :(得分:2)

我已被告知此问题的解决方法,您致电:

challengeHandler.activeRequest.onUnresponsiveHost() 

在实际打电话之前:

challengeHandler.submitFailure()

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

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

答案 1 :(得分:1)

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

如果要在服务器端擦除用户身份,则有两个选项

  1. 创建一个不需要身份验证的适配器过程,并调用WL.Server.setActiveUser(“realm-name”,null)。这将终止任何userIdentity。
  2. 在您的应用中调用WL.Client.logout(“realm-name”)