【发布时间】:2020-05-10 04:40:04
【问题描述】:
我们在 iOS13 上使用 cordova-plugin-ms-adal 进行 AD Azure 身份验证时遇到问题。这是来自一个科尔多瓦应用程序,通过应用商店打包和安装。它在 iOS12 和 Android 上运行良好,但在 iOS13 上它静默失败,导致“空白页”,因为没有触发任何回调。
以下是示例代码,来自插件文档页面的说明。 'acquireTokenSilentAsync' 和 'acquireTokenAsync'(如果直接调用)都失败但不会触发任何错误回调。
我知道 Microsoft 不再支持 ADAL cordova 插件(自 2019 年 3 月起),但我正在尝试确定该插件是否可以以某种方式与 iOS13 一起使用,或者我们是否必须切换到其他一些机制(例如 MSAL) ?
简而言之,有没有人确切地知道 cordova-plugin-ms-adal 插件是否可以与 iOS13 一起使用,用于打包的 cordova 应用程序,如果不能,什么是好的替代品?
// Shows user authentication dialog if required
function authenticate(authCompletedCallback, errorCallback) {
var authContext = new Microsoft.ADAL.AuthenticationContext(authority);
authContext.tokenCache.readItems().then(function (items) {
if (items.length > 0) {
authority = items[0].authority;
authContext = new Microsoft.ADAL.AuthenticationContext(authority);
}
// Attempt to authorize user silently
authContext.acquireTokenSilentAsync(resourceUri, clientId)
.then(authCompletedCallback, function () {
// We require user credentials so triggers authentication dialog
authContext.acquireTokenAsync(resourceUri, clientId, redirectUri)
.then(authCompletedCallback, errorCallback);
});
});
};
authenticate(function(authResponse) {
console.log("Token acquired: " + authResponse.accessToken);
console.log("Token will expire on: " + authResponse.expiresOn);
}, function(err) {
console.log("Failed to authenticate: " + err);
});
【问题讨论】:
标签: cordova ios13 adal msal msal.js