Как автоматизировать получение токенов доступа с использованием потока кода авторизации? - PullRequest
1 голос
/ 28 января 2020

Мы работаем над веб-приложением, которое взаимодействует с Microsoft Graph / OneDrive с помощью API REST. Мы используем поток кода авторизации для получения токена доступа.

В этом потоке представлены страница входа в систему Microsoft и страница согласия, которую мы стремимся автоматизировать. Поскольку этот пользовательский интерфейс имеет тенденцию изменяться, мы не могли использовать Selenium или аналогичную структуру.

Не могли бы вы помочь / предложить структуру / технологию для автоматизации такого потока?

Ответы [ 2 ]

0 голосов
/ 30 января 2020

1) Подготовьте URL-адрес для получения кода из запроса GET

var win = window.open(url, '_blank',"width=800,var pollTimer = window.setInterval(function() {
                if (win.closed !== false) { 
                     // !== is required for compatibility with 
                     //Handle success or failure on close of window
                    window.clearInterval(pollTimer);
                }
            }, 200);

2) URL будет иметь «redirect_uri», который должен указывать на ваш URL-адрес бэкэнд-службы с конечной точкой для обработки полученного кода

Пример кода при весенней загрузке

@RequestMapping(value="/onedrive-auth",method=RequestMethod.GET)
    public ResponseEntity<String> onedriveAuthentication(Principal principal,@RequestParam("code") String code) {
        GenericResponse response = new GenericResponse();
        try {
            oneDriveService.getAuthentication(principal, config, code);
            return new ResponseEntity("Onedrive Successfully Authenticated",HttpStatus.OK);
        } catch (Exception e) {
            e.printStackTrace();
            return new ResponseEntity("Couldn't get the Authentication. Try again later.",HttpStatus.INTERNAL_SERVER_ERROR);
        }   
    }

3) Служба отвечает за использование кода для получения access_token и refresh_token

, поэтому

oneDriveService.getAuthentication (принципал, конфиг, код);

подготовит URL с идентификатором клиента, секретом клиента, типом аутентификации в качестве кода и типа предоставления и отправит почтовый запрос

4) Проверьте ответ, полученный на этот запрос. Если он успешен, тогда oAuth получен, и вы можете использовать его или сохранить, иначе это означает, что код был недействительным. Обрабатывать сценарий ios

0 голосов
/ 28 января 2020

Не используйте поток кода авторизации. Использовать поток предоставления учетных данных клиента. Подробнее здесь .

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