Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Платформа 1С предоставляет возможность создавать http сервисы, при этом штатно используется Basic authentication что является ограничением для использования 1С в качестве backend
Ниже представлен мой велосипед решение реализующее на платформе 1С JWT аутентификацию и приложение клиент на React js.
Пример реализующий следующий сценарий
Администратор 1С добавляет пользователя и отправляет ему приглашение по почте (в 1С встроена работа с почтовым сервером)
Пользователь по ссылке приглашения регистрируется в системе
Пользователь при необходимости может изменить пароль
Пользователь проходит aутентификацию.
Пользователь использует защищенные методы 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