Короткий ответ
SSO/API tokens, context actions, permissions, audit logs, deployment and corporate policies. Разбираем практический порядок работ, риски, стоимость и то, как принять результат без новых проблем.
Ниже — конкретные проверки, команды, таблицы и контроль результата. Выполняйте изменения только после резервной копии, если действие затрагивает рабочую систему.
Где должна жить логика
| Слой | Что размещать |
|---|---|
| Content script | |
| страницы | |
| Service worker | сообщения, auth flow, network orchestration |
| Backend | секреты, бизнес-правила, общая БД |
| CRM API | официальный интерфейс системы |
| Popup | действия пользователя, не секреты |
Не храните долгоживущий секрет CRM в content script
Content script работает рядом с чужой страницей. Для серьёзной корпоративной интеграции лучше использовать короткоживущую авторизацию и backend, который хранит серверные секреты.
Проверка роли перед действием на backend
// Псевдокод backend
$user = requireAuthenticatedUser();
if (!$user->can('crm.write')) {
http_response_code(403);
exit;
}
validate($payload);
crmClient()->updateContact($payload);Приёмочные сценарии
| Сценарий | Проверка |
|---|---|
| Пользователь без роли | 403 server-side |
| Token истёк | повторная авторизация |
| CRM недоступна | действие не теряется |
| Два таба | состояние корректно |
| од | локальные токены очищены |
Как проверить результат
После изменений повторите исходный сценарий, зафиксируйте результат и убедитесь, что соседние функции работают так же, как до правки. Если проблема проявляется не всегда, проведите несколько повторов в одинаковых условиях и сохраните диагностические данные.