【问题标题】:IBM Worklight 6.2 ChallengeHandler submitFailure: doesn't behave as expectedIBM Worklight 6.2 ChallengeHandler submitFailure:未按预期运行
【发布时间】:2014-11-04 13:44:20
【问题描述】:

我正在使用 Worklight 6.2 iOS 本机框架。我已经实现了一个自定义MyChallengeHandler 子类ChallengeHandler,并登录:

[[WLClient sharedInstance] login:@"SomeRealm" withDelegate:LoginListener];

ChallengeHandler 中我可以提交成功,它在LoginListener 中调用onSuccess:

[self submitSuccess:response];

但是,我无法提交失败,我希望在 LoginListener 中调用 onFailure:。实际上,调用submitFailure:onFailure:LoginListener 中从未被调用时看起来没有任何效果。

另外,我在 WL ChallengeHandler 标头中没有看到 submitFailure: 的声明,它仅在 BaseChallengeHandler 中可用。

我的主要观点是,目前看起来LoginListener onFailure: 方法从未被调用,但在某些情况下handleChallenge: 应该失败。并且 LoginListener 应该被释放。

这是 Worklight 中的一个已知问题,是否有任何解决方法?

更新 1:

刚发现JS客户端API有类似问题,对native没用: Adapter procedure call, reporting an authentication failure

更新 2:

这可能很重要。我正在使用适配器身份验证,但在 IBM 示例中有 submitLoginForm:,也许我的问题仅针对适配器身份验证。

[self submitAdapterAuthentication:invocationData options:nil]

【问题讨论】:

  • 我注意到的第一件事,你写的是ChallangeHandler而不是ChallengeHandler(e不是a)。不确定它是在这里还是在您的真实代码中......
  • handleChallangehandleChallenge 相同)
  • 帖子打错字了,明显是ChallengeHandler。

标签: ios objective-c ibm-mobilefirst


【解决方案1】:

到目前为止还很模糊,但我会写一些我想到的可能性。如果有任何帮助,请告诉我,我会更新我的答案。

1) 你上面的代码说你使用类ChallangeHandler。我不确定错字是否仅在 StackOverflow 或您的真实代码中,但该类是 ChallengeHandler,带有 e

handleChallangehandleChallenge 相同。

2) 您是否在某处注册了您的挑战处理程序?

[[WLClient sharedInstance] registerChallengeHandler:[[MyChallengeHandler alloc] initWithViewController:self] ];

3) 你的 LoginListener 是否成功过?你的挑战处理程序呢?

您是正确的,文档没有提到 submitFailure - 我会调查的。

但是在我编写的代码中,我可以毫无问题地使用它。

@implementation MyChallengeHandler
//...
-(void) onSuccess:(WLResponse *)response {
    NSLog(@"inside challenge success");
    [self.vc.navigationController popViewControllerAnimated:YES];
    [self submitSuccess:response];
}

-(void) onFailure:(WLFailResponse *)response {
    NSLog(@"inside challenge failure");
    [self submitFailure:response];
}

【讨论】:

  • 1) 帖子中的错字 2) 是的,我已经注册了 ChallengeHandler。 3)是的,onSuccess:工作正常。我可以 submitSuccess: 在 handleChallenge: 中没有任何问题。问题只针对 submitFailure:,如果我想放弃 handleChallenge: 出于某种原因。
猜你喜欢
  • 2013-07-31
  • 2014-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-12
  • 2014-11-12
  • 1970-01-01
  • 2020-06-28
相关资源
最近更新 更多