Как стать автором
Обновить

1С http сервис с jwt авторизацией + клиент React js

Время на прочтение2 мин
Количество просмотров13K

Платформа 1С предоставляет возможность создавать http сервисы, при этом штатно используется Basic authentication что является ограничением для использования 1С в качестве backend

Ниже представлен мой велосипед решение реализующее на платформе 1С JWT аутентификацию и приложение клиент на React js.

Пример реализующий следующий сценарий

  1. Администратор 1С добавляет пользователя и отправляет ему приглашение по почте (в 1С встроена работа с почтовым сервером)

  2. Пользователь по ссылке приглашения регистрируется в системе

  3. Пользователь при необходимости может изменить пароль

  4. Пользователь проходит aутентификацию.

  5. Пользователь использует защищенные методы api

В 1С реализованы следующие методы

  • `${API_URL}/?typerequest=login
    Получение ключей по логину и паролю
    Запрос {email,password}Ответ {error, AccessToken, RefreshToken}
    Ответ {error, AccessToken, RefreshToken}
    set-cookie {refreshToken}

  • `${API_URL}/?typerequest=RefreshToken
    Комментарий: Обновление ключей 
    Запрос {}
    Ответ {error, AccessToken, RefreshToken}
    set-cookie {refreshToken}

  • `${API_URL}/?typerequest=getConformationCode
    Получение письма с кодом подтверждения на указанный адрес
    Запрос {userID}
    Ответ {error, requestKey}

  • `${API_URL}/?typerequest=getKeyChangePassword
    Получение ключа изменения пароля
    Запрос {userID, requestKey - уникальный код запроса, формируется сервером при выполнении getConformationCode, code - код из письма}
    Ответ {error, key}

  • `${API_URL}/?typerequest=passwordChange

    Комментарий: Установка нового пароля
    Запрос {passwordСhangeKey, password}
    Ответ {error, AccessToken, RefreshToken}
    set-cookie {refreshToken}

WEB клиент React js

https://github.com/inzarubin80/authorization/tree/master/1c

Страница входа

Страница запроса кода подтверждения

Страница ввода кода подтверждения

Страница смены пароля

В конфигурации 1c используются следующие основные объекты

Cсылка на конфигурацию

Справочник Пользователи

Содержит список пользователей, в качестве идентификатора указывается почта пользователя

Регистр сведений "Ключи авторизации внешних пользователей"

Содержит ключи выданные пользователям

Ключ шифруется по алгоритму MD5

Регистр сведений "Коды подтверждения внешних пользователей"

Содержит коды подтверждений для смены пароля

Код шифруется по алгоритму MD5

Регистр сведений "Пароли внешних пользователей"

Пароль шифруется по алгоритму MD4

В конфигурации используется реализация jwt токена на платформе 1С представленная Vasily Pintov https://github.com/pintov/1c-jwt

Теги:
Хабы:
Всего голосов 3: ↑3 и ↓0+3
Комментарии7

Публикации

Истории

Работа

React разработчик
79 вакансий
Консультант 1С
162 вакансии
Программист 1С
115 вакансий
Аналитик 1С
9 вакансий

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань