office word 加载项 adfs 登录
office word add-in adfs login
我有使用 ADAL.js 代码的登录按钮,单击登录按钮后,Office Word 加载项会重定向到 ADFS 登录页面,并显示消息 带你到你所在组织的登录页面,在 ADFS 页面上输入凭据后,Wed 插件 URL 在新浏览器 window 上打开,并且不会重定向回 Office 插件。
Office 加载项登录页面确实
没有得到登录用户的详细信息,下面是我的代码和屏幕截图
var authContext = new AuthenticationContext(config);
var isCallback = authContext.isCallback(window.location.hash);
authContext.handleWindowCallback();
if (isCallback && !authContext.getLoginError()) {
window.location = authContext._getItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST);
}
var user = authContext.getCachedUser();
if (!user) {
authContext.login();
}
enter image description here
我使用对话框 api 解决了这个问题。
首先,使用以下命令打开 adfs 页面对话框:
var dialog;
Office.context.ui.displayDialogAsync(ADFS_URL_HERE, {height: 30, width: 20},
function (asyncResult) {
dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, processMessage);
}
);
打开后您可以关闭它(或通过用户)一旦您获得用户使用:
Office.context.ui.messageParent({"type":"closeDialog"});
处理函数:
function processMessage(arg) {
var messageFromDialog = JSON.parse(arg.message);
if(messageFromDialog.type == "closeDialog"){
dialog.close();
}
}
您可以在此处阅读有关对话框 api 的更多信息:https://docs.microsoft.com/en-us/office/dev/add-ins/develop/dialog-api-in-office-add-ins
在您的 ADAL 配置中添加“popUp: true”,这样它将打开一个对话框并在那里进行处理。
我有使用 ADAL.js 代码的登录按钮,单击登录按钮后,Office Word 加载项会重定向到 ADFS 登录页面,并显示消息 带你到你所在组织的登录页面,在 ADFS 页面上输入凭据后,Wed 插件 URL 在新浏览器 window 上打开,并且不会重定向回 Office 插件。
Office 加载项登录页面确实 没有得到登录用户的详细信息,下面是我的代码和屏幕截图
var authContext = new AuthenticationContext(config);
var isCallback = authContext.isCallback(window.location.hash);
authContext.handleWindowCallback();
if (isCallback && !authContext.getLoginError()) {
window.location = authContext._getItem(authContext.CONSTANTS.STORAGE.LOGIN_REQUEST);
}
var user = authContext.getCachedUser();
if (!user) {
authContext.login();
}
enter image description here
我使用对话框 api 解决了这个问题。
首先,使用以下命令打开 adfs 页面对话框:
var dialog;
Office.context.ui.displayDialogAsync(ADFS_URL_HERE, {height: 30, width: 20},
function (asyncResult) {
dialog = asyncResult.value;
dialog.addEventHandler(Office.EventType.DialogMessageReceived, processMessage);
}
);
打开后您可以关闭它(或通过用户)一旦您获得用户使用:
Office.context.ui.messageParent({"type":"closeDialog"});
处理函数:
function processMessage(arg) {
var messageFromDialog = JSON.parse(arg.message);
if(messageFromDialog.type == "closeDialog"){
dialog.close();
}
}
您可以在此处阅读有关对话框 api 的更多信息:https://docs.microsoft.com/en-us/office/dev/add-ins/develop/dialog-api-in-office-add-ins
在您的 ADAL 配置中添加“popUp: true”,这样它将打开一个对话框并在那里进行处理。