HTTP сервис и Сохранение пароля на IPHONE. Часть 3 Анонимная аутентификация
Проблема с аутентификацией и сохранеия пароли на устройствах с ОC IOS я написал в первой части статьи здесь .
Проблема в том, что клиентское приложение почты на iPhone и iPad в отличии от смартфонов не сохраняют параметры входа и каждый раз запрашивают их у пользователя для передачи на веб-сервер в HTTP-запросе
Такое поведение неудобно когда нужно часто ображаться к веб-серверу для получения данных или выполнения операции через НТТР запросы, .например, согласование платежей
Попытка исползования OpenID-аутентификации с целью обойти эту проблему я описал во вторй части статьи здесь. Но ничего не получилось – программа “почта” все время запрашивает у пользователя имя и пароль для отправки к веб – серверу через НТТР запрос
В этой третьей части я описываю методику, с помощью которой мне удалось обойти эту проблему.
Суть методики в том, что нужно опубликовать только http-сервис в отдельном файле публикации и добавить в нем специальный анонимный пользователь 1С .Таким образом веб – сервер не затребует у клиентского приложения передать имя и пароль .
Порядок работы
1. Публикация http-сервис в отдельной публикации
С помощью диалога публикации в конфигурации информационной базы не нужно опубликовать тонкий клиент , веб-клиент , а также стандартный интерфейс Odata и все веб – сервисе на закладке веб-сервисы .
На закладке НТТР сервисы публиковать НТТР сервис. В моем приложение 1С : согласование я создал только один один НТТР сервис – Установка статуса заявки
После нажатия опубликовать нужно редактировать файл публикации default.vrd с помощью простого текстового редактора Блокнот или Notepad
В этом файле нужно найти тег ib = и довавить user =UserHttp; pwd = 123
Этот ползователь UserHttp я добавил предворительно в базу данных, установил пароль 123 и дал ему полные права . Однако не показываю в списке выбора :
Внимание! Если имя и пароль в этом файле не соответствует пользователю 1С , то при обращении к сервису будет выдана ошибка при получении значения атрибута контекста (ТекущийПользователь). и обработать случай, когда параметры входа, которые заданные в файле не соответствуют ни одному пользователю . Поэтому если будете изменять пароль у пользователя usrHttp в базе данных, то нужно также менять его в файле публикации.
Для обращения НТТР сервису через Agreement не нужно авторизоваться. Все сделает пользователь usrHttp :
При попытке запускать веб –клиент на Agreement браузер выдает сообщение:
2. Создать еще один файл публикации
Я назвал имя базы WAgreement и сохранил в другом каталоге. В файле публикации WAgreement я опубликовал тонький клиент и веб-клиент потому, что я буду использовать WAgreement для запуска тонкого клиента и веб -клиента .
Файл публикации WAgreement не нужно редактировать!!!!!
Для запуска веб- приложения нужно теперь обращаться к WAgreement, но при этом нужно авторизоваться :