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 在同一设备上更改