使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实移动设备中重定向 URI?

Using Phonegap/Cordova JS App and MS ADAL JS. How to redirect URI in real mobile?

我正在使用 Phonegap/Cordova 开发一个网络应用程序,并用于身份验证: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();
        }

    }

ADAL 不适用于 Cordova。但是,有一个 Cordova 插件可用于设置 AAD 身份验证。参考:Azure ADAL Authentication for Cordova App Guidance Also, I would suggest that you check the steps mentioned in the below document for adding authentication to your Cordova Application. Add Authentication to the App

Whosebug 上针对您描述的问题提供了一些很好的解决方法,Github 上也提供了一些有用的示例。