Authentication HTTP基本身份验证方法,通过Datapower对移动客户端进行身份验证

Authentication HTTP基本身份验证方法,通过Datapower对移动客户端进行身份验证,authentication,ibm-mobilefirst,ibm-datapower,Authentication,Ibm Mobilefirst,Ibm Datapower,我正在使用Mobilefirst Platform 8.0开发我的应用程序 如何使用HTTP基本身份验证方法通过datapower对移动客户端进行身份验证。请用challnegHandler示例代码帮助我 我在challengeHandler中尝试了以下代码,但Datapower总是返回401 var DataPowerChallengeHandler = function() { var dataPowerChallengeHandler = WL.Client.createGatewa

我正在使用Mobilefirst Platform 8.0开发我的应用程序

如何使用HTTP基本身份验证方法通过datapower对移动客户端进行身份验证。请用challnegHandler示例代码帮助我

我在challengeHandler中尝试了以下代码,但Datapower总是返回401

var DataPowerChallengeHandler = function() {
   var dataPowerChallengeHandler = WL.Client.createGatewayChallengeHandler("LtpaBasedSSO");

   dataPowerChallengeHandler.canHandleResponse = function(response) {
    if (!response || response.responseText === null) {
        return false;
    }

    if (response.status=="401") {{
        return true;
    }

    return false;
};

dataPowerChallengeHandler.handleChallenge = function(response) {
    document.getElementById('result').style.display = 'none';
    document.getElementById('auth').style.display = 'block';
};

dataPowerChallengeHandler.submitLoginFormCallback = function(response) {
    var isLoginFormResponse = dataPowerChallengeHandler.canHandleResponse(response);
    if (isLoginFormResponse) {
        dataPowerChallengeHandler.handleChallenge(response);
    } else {
        document.getElementById('result').style.display = 'block';
        document.getElementById('auth').style.display = 'none';
        dataPowerChallengeHandler.submitSuccess();
    }
};

document.getElementById("AuthSubmitButton").addEventListener("click", function() {
    var username = document.getElementById('txtusername').value;
    var password = document.getElementById('txtpassword').value;
    var mystring = convertBase64(username+":"+password);
    var headerString = "Basic "+ mystring;
    WL.Client.addGlobalHeader("Authorization",headerString);
    dataPowerChallengeHandler.submitSuccess();
});

document.getElementById("logout").addEventListener("click", function() {

    WLAuthorizationManager.logout("LtpaBasedSSO").then(
        function() {
            WL.Logger.debug("logout onSuccess");
            alert("Success logout");
        },
        function(response) {
            WL.Logger.debug("logout onFailure: " + JSON.stringify(response));
        });
});

document.getElementById('AuthCancelButton').addEventListener("click",function(){
  document.getElementById('result').style.display = 'block';
  document.getElementById('auth').style.display = 'none';
  dataPowerChallengeHandler.cancel();
});

return dataPowerChallengeHandler;
 };

网关质询处理程序代码不正确,导致了所有这些问题

CanHandlerResponse
方法用于确定它是否是datapower抛出的质询。只要有401挑战,您的客户端代码就会返回true。即使对于应该纠正的非datapower挑战,这也将返回true

handleChallenge
submitLoginFormCallback
方法中被显式调用,这是错误的<只有当
canHandlerResponse
方法返回true时,SDK才会调用code>handleChallenge


有关如何在客户端应用程序中使用网关质询处理程序的更多信息,请阅读本教程。

感谢Vittal的回复。Datapower配置为http基本身份验证,因此它会为每个未经授权的请求返回401。本教程没有提供有关如何使用HTTP基本身份验证方法通过Datapower对移动客户端进行身份验证的信息