使用 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 上也提供了一些有用的示例。
我正在使用 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 上也提供了一些有用的示例。