Вопрос

ошибка 401 при подключении из стороннего приложения

Добрый день!
 

у нас есть стороннее веб приложение которое использует данные из BpmOnline. получает, создает, обновляет данные.

работа идет через DataService, пользователь Supervisor.

иногда в процессе работы выходит ошибка 401.

то есть мы можем работать в нашем веб приложении, все успешно проходит и иногда выходит 401 ошибка. причем нет никакого алгоритма действий как повторить ошибку.

может есть какое-то время жизни токена? или может нужно как-то настроить сайт в иис чтобы не было ошибок?

Нравится

10 комментариев
Лучший ответ

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

Без кода трудно понять 

но конечно у каждой сесии (сеанса подключения) есть таймаут

При каждом вызове внешнего сервиса нужно подключать авторизационные кукие как это описанно в статье https://academy.terrasoft.ua/documents/technic-sdk/7-13/rabota-s-obekta… Или для доступа к данным сделать свой анонимный вэб сервис

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

Григорий Чех,

мы делаем так - делаем TryLogin а потом полученные куки используем при дальнейших запросах в систему. запросов много - на получение, создание и тп. мне же не нужно наверно перед каждым обращением в бпм заново логиниться? я залогинилась 1 раз и дальше использую эти куки.
 

"401 ошибка означает, что не аутентифицировался. Нужно сначала аутентифицироваться, сохранить куки и отсылать следующий запрос с сохраненными куками и Вашими данными."   - я знаю что означает 401 ошибка. вопрос в том, что оно работает, а потом может в какой то момент времени появится ошибка. и нет точного временного интервала после которого ошибка появляется. всегда по разному. ошибка появляется очень редко, но появляется

Кроме обычной куки, нужно ещё BPMCSRF.

Зверев Александр,

передаем. без этого бы вообще не сработало

Значит, проходит слишком много времени и авторизация отваливается. В таком случае нужно авторизироваться вновь.

Зверев Александр,

просто в чем странность - иногда через 30 минут выходит ошибка, а иногда и через 4ч нормально работает. вот что непонятно

Нужно не завязываться на промежуток времени, а в обработчике ошибки авторизироваться повторно. Кроме тайм-аута может быть что угодно, например, перезапуск сервера и чистка Redis на нём. Логика интеграции при таком страдать не должна.

Zaitova Liubov,

Здравствуйте. не забывайте, что куки авторизации действительны определенное время. Например Вы аторизировались под Supervisor "покидали" некие запросы в срм и потом на протяжении 1 часа действий со стороны Вашего приложения не происходило то тогда Ваши куки устаревают, если мене не изменяет память, по умолчанию таймаут сеанса пользователя составляет 20-30 мин. Данную настройку можно редактировать в профиле пользователя системы. 

http://prntscr.com/l7fu09

Показать все комментарии