Разобрать настройку токена без настоящего OAuth-входа

Учебные задачи

Читаем явный учебный JSON и переносим access_token в черновик профиля. TRAINING_NOT_VALID намеренно недействителен: сетевой вход не выполняется.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. В учебной обработке или общем модуле запустите каждый фрагмент отдельно на сервере. Профиль создаётся в памяти; объект ИнтернетПочта и Подключиться в этих упражнениях не используются.

  2. example.invalid и TRAINING_NOT_VALID — намеренно нерабочие адреса/значения. Они позволяют разобрать свойства без отправки писем, подключения к чужим серверам и использования настоящих секретов.

  3. Для последующего реального соединения параметры берутся у администратора именно вашего тестового почтового сервиса. Значения этих уроков не являются настройками Gmail, Яндекс или корпоративной почты.

Профиль = Новый ИнтернетПочтовыйПрофиль;
Чтение = Новый ЧтениеJSON;
Чтение.УстановитьСтроку("{""access_token"":""TRAINING_NOT_VALID"",""token_type"":""Bearer""}");
Попытка
    Ответ = ПрочитатьJSON(Чтение);
Исключение
    Чтение.Закрыть();
    ВызватьИсключение;
КонецПопытки;
Чтение.Закрыть();
Если Не Ответ.Свойство("access_token", УчебныйТокен)
    Или Не Ответ.Свойство("token_type", ТипТокена) Тогда
    ВызватьИсключение "В собственном учебном JSON нет полей токена";
КонецЕсли;
Если ТипЗнч(УчебныйТокен) <> Тип("Строка") Или ТипТокена <> "Bearer" Тогда
    ВызватьИсключение "Неверный формат собственного учебного ответа";
КонецЕсли;
Профиль.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Использовать;
Профиль.ТокенДоступа = УчебныйТокен;
Сообщить(Профиль.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Использовать);
Сообщить(СтрДлина(Профиль.ТокенДоступа) > 0);
Профиль.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.НеИспользовать;
Профиль.ТокенДоступа = "";
УчебныйТокен = "";
Сообщить(Профиль.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.НеИспользовать);
Сообщить(Профиль.ТокенДоступа = "");

Разбор по шагам

  1. JSON целиком написан в уроке и не является ответом действительного сервиса авторизации.

  2. ЧтениеJSON закрывается на успешном и ошибочном пути; проверяем наличие и тип нужных полей.

  3. ТокенДоступа ожидает сам access_token, не весь JSON и не строку с добавленным префиксом Bearer.

  4. По описанию ТокенДоступа использование возможно для IMAP/SMTP при режиме Использовать или Авто. Этот пример не выполняет ни один сетевой протокол.

  5. В конце отключаем токенный режим и очищаем учебную строку. Реальные выдача, срок действия и обновление OAuth-токена — отдельный процесс у вашего провайдера.

Как проверить результат

  1. Четыре сравнения Истина; содержимое токена в сообщения не выводится.

  2. В профиле в конце пустой токен и режим НеИспользовать.

Ожидаемый результат

Понятен контракт свойства токена без передачи настоящего секрета и имитации успешного входа.

На что обратить внимание

  1. TRAINING_NOT_VALID нельзя использовать для подключения; это честно обозначенная учебная фикстура.

  2. Непустая строка не означает действительный токен или права на чтение/отправку писем.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.