使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实手机中重定向 URI?
Posted
技术标签:
【中文标题】使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实手机中重定向 URI?【英文标题】:Using Phonegap/Cordova JS App and MS ADAL JS. How to redirect URI in real mobile? 【发布时间】:2019-06-02 10:41:52 【问题描述】:我正在使用 Phonegap/Cordova 开发一个 webapp,用于身份验证:Adal.js(用于 javascript 的 Active Directory 身份验证库)。在 UI 中使用 DevExtreme 组件。
在浏览器模拟器上它工作正常,但是当我生成 .apk 并安装在 android 移动设备上时,它不起作用。问题是重定向 Uri,在 Azure Portal -> App Registrations 中,我配置回复 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】:ADAL 不是为在 Cordova 中工作而设计的。但是,有一个 Cordova 插件可用于设置 AAD 身份验证。参考:Azure ADAL Authentication for Cordova App Guidance 另外,我建议您检查以下文档中提到的步骤,以向您的 Cordova 应用程序添加身份验证。 Add Authentication to the App
对于您描述的问题,*** 上提供了一些很好的解决方法,Github 上也提供了一些有用的示例。 Setting a valid Azure AD uri for PhoneGap
【讨论】:
以上是关于使用 Phonegap/Cordova JS 应用程序和 MS ADAL JS。如何在真实手机中重定向 URI?的主要内容,如果未能解决你的问题,请参考以下文章
HealthTap 是使用 phonegap cordova 开发的吗?
为 Phonegap / Cordova iphone 应用程序设置 CMS
iOS - 如何使用 phoneGap / Cordova 中的参数调用 writeJavascript
Phonegap/Cordova - 套接字插件最终得到: undefined is not a function in cordova.js