Получить токен без всплывающего окна, используя ADAL.js в Dynamics 365 - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь получить токен от JS, используя ADAL.js для аутентификации.

В приведенном ниже коде я пытаюсь получить кэшированный пользователя и токен. Если пользователь и токен не кэшированы, я открываю всплывающее окно на фиктивную страницу в CRM, а затем кэширую пользователя и токен.

var getUser = function () {
    return new Promise(function (resolve, reject) {
        // If the user is cached, resolve the promise immediately.
        var user = authContext.getCachedUser();
        if (user) {
            var cachedToken = authContext.getCachedToken(clientId);
            resolve(cachedToken);
            return;
        }

        // The user was not cached. Open a popup window which
        // performs the OAuth login process, then signals
        // the result.
        authContext.config.displayCall = function (url) {
            authContext.config.displayCall = null;
            var popup = window.open(url, 'auth-popup', 'toolbar=no,status=no,menubar=no,scrollbars=no,resizable=no,left=10000, top=10000, width=10, height=10, visible=none');

            var intervalId = window.setInterval(function () {
                try {
                    if (popup.location.pathname.indexOf('/' + dummyAuthPage) >= 0) {

                        authContext.handleWindowCallback(popup.location.hash);
                        popup.close();
                        token = authContext.getCachedToken(clientId);
                        if (token) {
                            window.clearInterval(intervalId);
                            resolve(token);
                        }
                        else {
                            reject(authContext.getLoginError());
                        }
                    }
                } catch (whatever) {
                    if (popup.closed) {
                        reject();
                    }
                }
            }, 100);
        };

Есть ли у нас лучший способ сделать то же самое, особенно без всплывающего окна?

В настоящее время я пытаюсь выполнить Silent Authentication . Но здесь упоминается «На странице содержимого вкладки вызовите microsoftTeams.getContext (), чтобы получить подсказку для входа для текущего пользователя». Эта команда ничего не возвращает в CRM.

Спасибо

1 Ответ

0 голосов
/ 09 мая 2019

Вы можете попробовать тихую аутентификацию, описанную в следующих документах dms.microsoft Link Тихая аутентификация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...