Cordova Android应用程序从MobileFirst 8.0服务器获取"invalid_client"

Vig*_* Sn 5 android oauth-2.0 cordova ibm-mobilefirst mobilefirst-server

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

方案是,用户必须登录安全检查才能访问该应用程序.

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

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

但是,在传递给此终点的参数中,我发现Android和IOS之间存在差异.

Android的

    response_type=code
    scope=
    client_id=
    redirect_uri=http://mfpredirecturi&isAjaxRequest=true&x=0.9217767383903592

Android的后续调用令牌生成终点失败./ runtime/api/az/v1/token HTTP/1.1"400 {status:400,errorCode:"invalid_client",description:"JWT格式不正确"}

IOS

    response_type=code
    scope=
    client_id=
    redirect_uri=http%3A//mfpredirecturi

WLAuthorizationManager.login(SECURITY_CHECK_NAME,凭证)触发/预授权呼叫

cordova-mfp-plugin(8.0.2016110713)cordova-android(5.2.0)

我的主要嫌疑人是redirect_uri,它不是仅为Android编码的.是导致问题的那个?是否可以编码并发送cordova应用程序的redirect_uri?

小智 0

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

<build>
    <plugins> 
        <plugin> 
            <groupId>com.ibm.mfp</groupId>
            <artifactId>adapter-maven-plugin</artifactId>
            <version>8.0.2017021701</version> 
            <extensions>true</extensions> 
        </plugin> 
    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

这个适配器插件版本工作正常。