ios 设备上的 IBM Mobilefirst 8 ChallengHandler 问题

Posted

技术标签:

【中文标题】ios 设备上的 IBM Mobilefirst 8 ChallengHandler 问题【英文标题】:IBM Mobilefirst 8 ChallengHandler issue on ios device 【发布时间】:2017-05-10 00:03:18 【问题描述】:

我目前使用的是 IBM MobileFirst Platform 8.0。和 Datapower 作为反向代理服务器。

我已经实现了挑战处理程序,如 https://mobilefirstplatform.ibmcloud.com/blog/2016/06/17/datapower-integration/

iPhone 7 Plus 和 iPhone 6 plus 一切正常,但每当我在其他 iPhone(iPhone 6 或 iPhone 6s)上运行应用程序时,以下方法永远不会被调用 -

dataPowerChallengeHandler.canHandleResponse = function(response) 

if (!response || response.responseText === null) 
    return false;

var indicatorIdx = response.responseText.search('j_security_check');

if (indicatorIdx >= 0) 
    return true;


return false;

;

Plus 和其他 iPhone 有什么不同吗?

我使用的是 MFP 平台版本 - 8.0.0.00-20170131-101344

XCode 8.0 版

ios 版本 10.0

【问题讨论】:

您发现问题所在的设备是否运行不同版本的操作系统?网络捕获显示什么 - 在服务器端显示请求和响应的那个。线索就在那里 观察了 Datapower 日志。 iPhone 7 Plus 设备的请求转到 api/preauth/v1/preauthorize,但 iPhone 6 的请求转到 api/registration/v1/self。为什么会有这种差异? 最初我在下面调用函数- WLAuthorizationManager.obtainAccessToken(userLoginChallengeHandler.securityCheckName).then( function (accessToken) WL.Logger.debug("obtainAccessToken onSuccess"); , function (response) WL.Logger.debug("obtainAccessToken onFailure:" + JSON.stringify(response)); ); 您是第一次在两台设备上运行应用程序吗?还是一台设备已经安装,而另一台设备是最近安装的 【参考方案1】:

我不记得这里有任何具体的已知问题 w.r.t Iphone 版本。

为了进一步帮助您,您能否澄清以下内容

    您是否尝试过博客中的示例,是否有效? 2.你能分享来自datapower网关的wireshark跟踪吗,如果你发现设备之间的流量有什么不同?

【讨论】:

观察了 Datapower 日志。 iPhone 7 Plus 设备的请求转到 api/preauth/v1/preauthorize,但 iPhone 6 的请求转到 api/registration/v1/self。为什么会有这种差异? 就像 vivin 已经更新一样,第一次从设备登录时会调用注册。否则对于后续登录(成功注册),会调用 preAuth。根据您的解释,似乎调用了失败的场景注册,如果成功,您将看到一个 preAuth 帖子。所以我们需要看到注册响应

以上是关于ios 设备上的 IBM Mobilefirst 8 ChallengHandler 问题的主要内容,如果未能解决你的问题,请参考以下文章

IBM MobileFirst 7.0 - 我们如何生成 .ipa 文件?

升级到 iOS 9 和 MobileFirst 7.1 后无法登录设备或模拟器上的应用程序

IBM MobileFirst 7.1.0 WL.Device.getID 在同一设备上更改

IBM MobileFirst 8 - 推送通知错误代码:invalid_client

IBM-Mobilefirst 意外错误中的推送通知

IBM MobileFirst 将 JSON 正文从 iOS SDK 发送到 Java 适配器