Authentication HTTP基本身份验证方法,通过Datapower对移动客户端进行身份验证
我正在使用Mobilefirst Platform 8.0开发我的应用程序 如何使用HTTP基本身份验证方法通过datapower对移动客户端进行身份验证。请用challnegHandler示例代码帮助我 我在challengeHandler中尝试了以下代码,但Datapower总是返回401Authentication 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
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对移动客户端进行身份验证的信息