【问题标题】:Cordova Android application getting "invalid_client" from MobileFirst 8.0 serverCordova Android 应用程序从 MobileFirst 8.0 服务器获取“invalid_client”
【发布时间】:2017-05-05 19:59:06
【问题描述】:

与 IBM MobileFirst v8 集成的我的 Cordova IOS 应用程序运行良好。但是,我在 Android 遇到了一个奇怪的问题。

场景是, 用户必须登录安全检查才能访问应用程序。

质询处理程序被调用并将凭据提交到 (runtime/api/preauth/v1/preauthorize)。我在日志中看到安全检查已通过。

我可以看到下一次调用授权端点(runtime/api/az/v1/authorization)

但是我发现 Android 和 IOS 在传递到此端点的参数方面存在差异。

安卓

response_type=代码 范围= client_id= redirect_uri=http://mfpredirecturi&isAjaxRequest=true&x=0.9217767383903592

仅 Android 对令牌生成端点的后续调用失败。 /runtime/api/az/v1/token HTTP/1.1" 400 {状态:400,错误代码:“invalid_client”,描述:“不正确的 JWT 格式”}

IOS

response_type=代码 范围= client_id= redirect_uri=http%3A//mfpredirecturi

WLAuthorizationManager.login(SECURITY_CHECK_NAME, credential) 触发 /preauthorize 调用

cordova-mfp-插件 (8.0.2016110713) 科尔多瓦安卓 (5.2.0)

我的主要嫌疑人是 redirect_uri,它不是单独为 Android 编码的。是造成问题的原因吗?是否可以从cordova 应用程序编码和发送redirect_uri?

【问题讨论】:

  • 在您的应用中触发预授权的第一个操作是什么? (资源请求/获取/登录等)。我们正在尝试重现。另外,你能检查一下cordova-mfp-plugin的版本吗?
  • WLAuthorizationManager.login(SECURITY_CHECK_NAME, credential) 是触发预授权的那个。
  • 我使用的是最新版本的 cordova-mfp-plugin (8.0.2016110713)。
  • @IdanAdar PMR 打开 (79626 000 834)
  • 好吧,我找不到解决方案,但如果您需要暂时运行它,我找到了一个 hack。将客户端设备上的时间从 T(其中 T 是实际时间)更改为 T+15 分钟。它只是一个临时修复。

标签: android cordova oauth-2.0 ibm-mobilefirst mobilefirst-server


【解决方案1】:

您可以尝试更新的 MFP 适配器插件 在你的 pom.xml 中

<build>
    <plugins> 
        <plugin> 
            <groupId>com.ibm.mfp</groupId>
            <artifactId>adapter-maven-plugin</artifactId>
            <version>8.0.2017021701</version> 
            <extensions>true</extensions> 
        </plugin> 
    </plugins>
</build>

此适配器插件版本运行良好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 1970-01-01
    相关资源
    最近更新 更多