请求正文无效 - JSON 在 IBM MobileFirst 8.0 中 WLAuthorizationManager.obtainAccessToken 的映射失败

Invalid request body - JSON mapping failed for WLAuthorizationManager.obtainAccessToken in IBM MobileFirst 8.0

我正在使用 Angular 和 IBM MobileFirst 8.0。我遇到了 WLAuthorizationManager.obtainAccessToken()

的问题

我正在使用下面的代码。

WLAuthorizationManager.obtainAccessToken()
    .then(
        function (token) {
          console.log(token);
        },
        function (res) {
          console.log(res);
        })

但是,我总是收到以下错误。

响应:

errorCode: "400"
errorMsg: "Bad Request"
responseHeaders: {cache-control: "[no-store, no-cache, must-revalidate]", connection: "[close]", content-language: "[en-US]", content-security-policy: "[default-src 'self';]", content-type: "[application/json]", …}
responseText: "\"Invalid request body - JSON mapping failed.\""
status: 400
statusText: "Bad Request

版本详情:

cordova-plugin-mfp: 8.0.2021031007

ibm-mfp-web-sdk: 8.0.2021011205

该项目已在 mfp 控制台中创建。

如有任何帮助,我们将不胜感激。谢谢!

iFix 8.0.0.0-MPFF-IF202010151343 在与旧版本的 Mobile Foundation 服务器的兼容性方面引入了重大更改。如果您的应用使用以下任何 SDK - Android、iOS 或 Cordova 版本 8.0.2020101412 或更高版本,则需要将您的服务器版本升级到 8.0.2020101311 或更高版本。

这是 APAR PH30473 STRENGTHENING PRE-AUTH ENDPOINT 所必需的,它改变了 Mobile Foundation SDK 和 Mobile Foundation 服务器之间的通信协议。

如果您无法升级服务器,作为兼容性措施,您可以选择将较新的 SDK(版本 8.0.2020101412 或更高版本)与较旧版本的 Mobile Foundation 服务器(8.0.0.1 之前的版本)一起使用。 2020101311) 添加以下配置:

本机 Android 应用程序 将以下行添加到您的 mfpclient.properties 文件中: sdkProtocolVersion=1

本机 iOS 应用程序 将以下条目添加到您的 mfpclient.plist

名称 - sdkProtocolVersion

类型 - 数字

值 - 1

Cordova 应用程序 在项目的 config.xml.

部分下添加以下行

mfp:SDKProtocolVersion1 推荐的做法是升级服务器,不使用上面提到的兼容性配置。

网络应用程序:

在 wlInitOptions 中添加 sdkProtocolVersion : '1'

有关详细信息,请参阅此处 https://mobilefirstplatform.ibmcloud.com/blog/2018/05/18/8-0-master-ifix-release/#changes-in-this-ifix-4

解决您的问题:

将应用连接到新版本的应用 + 将 sdkProtocolVersion 设置为 1

将服务器升级到最新版本。