objective c - 使用 device_id 预授权请求正文

objective c - preauthorize request body with device_id

自从我将 IBM Framework 升级到最新版本以来,还有一个额外的 device_id。 我可以知道是否可以将其从我的请求正文中删除? 因为它会导致 400 个错误请求。

{ "client_id": "84q113475-ffac-4a17-bf1b-be666369e097", "scope": "Authenticate", "device_id": "esBoCz0yTHEa87iQIrSdMqWJoVRsVc-XHqhf3tOCBXsTOoojcWgiASfaUeFYsxgMnTmGhW3M8EMiDM5Z7WvhpXw==", "challengeResponse": { "Authenticate": { "username": "USER1", "password": "WuPydyRBXUQ6pbNKhhoe2EklOruf2BcB4E8=", "deviceId": "0C35D8C7-763B-45AC-B229-DF01AEAD519B" } } }

当移动应用程序尝试连接旧版本的 MobileFirst Foundation Server(8.0.2020101311 之前的版本)时会发生这种情况。使用 MobileFirst 的最新 iFix 完成了一些安全性增强(PH30473 STRENGTHENING PRE-AUTH ENDPOINT)。这需要服务器和客户端应用程序处于同一级别。但是,为了确保兼容性,SDK 可以设置一个标志以继续使用旧服务器 如果您无法升级服务器,作为兼容性措施,您可以选择使用较新的 SDK(版本 8.0.2020101412 或更高版本) 通过添加以下配置来使用旧版本的 Mobile Foundation 服务器(8.0.2020101311 之前的版本):

本机 Android 应用程序

  • 将以下行添加到您的 mfpclient.properties 文件中: sdkProtocolVersion=1

本机 iOS 应用程序

  • 将以下条目添加到您的 mfpclient.plist
    • 名称 - sdkProtocolVersion
    • 类型 - 数字
    • 值 - 1

Cordova 应用程序

  • 在项目 config.xml<widget> 部分下添加以下行。 <mfp:SDKProtocolVersion>1</mfp:SDKProtocolVersion>

注意:推荐的方法是将您的 MobileFirst Server 版本升级到最新版本并在 MFP 控制台中添加新版本的应用程序并且不使用上述兼容性配置。

这是因为您已将 SDK 升级到最新版本,详情请阅读此处:https://mobilefirstplatform.ibmcloud.com/blog/2018/05/18/8-0-master-ifix-release/#features

IFix 8.0.0.0-MFPF-IF202010151343 introduces a breaking change with respect to compatibility with older versions of the Mobile Foundation server. If your app uses any of the following SDKs - Android, iOS or Cordova version 8.0.2020101412 or higher, it is necessary to upgrade your server version to 8.0.2020101311 or higher. This is necessitated by the APAR PH30473 STRENGTHENING PRE-AUTH ENDPOINT, which makes changes in the communication protocol between the Mobile Foundation SDKs and the Mobile Foundation server.
        If you are unable to upgrade your server, as a compatibility measure, you can choose to use the newer SDKs (version 8.0.2020101412 or higher) with an older version of the Mobile Foundation server (versions prior to 8.0.2020101311) by adding the following configuration:
        Native Android apps
        Add the following line to your mfpclient.properties file:
        sdkProtocolVersion=1
        
        Native iOS apps
        Add the following entry to your mfpclient.plist
        
        Name - sdkProtocolVersion
        
        Type - Number
        
        Value - 1
        
        
        
        Cordova apps
        Add the following line under the <widget> section of your project's config.xml.
        
        <mfp:SDKProtocolVersion>1</mfp:SDKProtocolVersion>
        The recommended approach is to upgrade the server and not use the compatibility configuration mentioned above.