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

时间:2019-01-07 18:36:17

标签: javascript android cordova adal devextreme

我正在使用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();
        }

    }

1 个答案:

答案 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