我正在使用Phonegap / Cordova开发一个Webapp,用于身份验证:Adal.js(JavaScript的Active Directory身份验证库)。将DevExtreme组件用于UI。
在浏览器模拟器上可以正常工作,但是当我生成.apk并安装在android移动设备上时,它不起作用。问题是重定向Uri,在Azure门户->应用程序注册中,我配置了回复URL:https:localhost:port/index.html
,但是在android应用程序(在这种情况下是cordova应用程序)中,我需要将其配置为类似file://android_asset/index.html
。但是不起作用。
有什么办法可以使它工作?
var microsoftAuthenticationParameters = {
clientId: "myClientID",
tenantId: "myTenantID",
popUp: true,
redirectUri: window.location.href + '/index.html',
endpoints: { "aisApiUri": "myClientID" },
cacheLocation: "localStorage"
}
function authenticate() {
authContext = new AuthenticationContext(microsoftAuthenticationParameters);
var isCallback = authContext.isCallback(window.location.hash);
if (isCallback) {
authContext.handleWindowCallback();
}
if (isCallback && !authContext.getLoginError()) {
window.location = authContext._getItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST);
}
else {
authContext.getLoginError();
}
var user = authContext.getCachedUser();
if (user) {
userInfo = user.userName;
var username = userInfo.split("@");
}
else {
authContext.login();
}
}
答案 0 :(得分:1)
ADAL不适用于科尔多瓦。但是,有一个Cordova插件可用于设置AAD身份验证。参考:Azure ADAL Authentication for Cordova App Guidance另外,我建议您检查以下文档中提到的步骤,以向您的Cordova应用程序添加身份验证。 Add Authentication to the App
在Stackoverflow上,针对您描述的问题,这里提供了一些很好的解决方法,在Github上也提供了一些有用的示例。 Setting a valid Azure AD uri for PhoneGap