В IQChannels есть публичное API, специально созданное для виджетов и мобильных приложений. Обеспечение его безопасности делается с помощью настроек CORS. CORS позволяет жестко ограничить домены, с которых браузеры могут обращаться к публичному API.
По умолчанию IQChannels разрешает доступ со всех доменов.
Пример заголовков CORS, которые возвращает IQChannels:
Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Accept, Accept-Encoding, Accept-Language, Access-Control-Request-Headers, Access-Control-Request-Method, Authorization, Cache-Control, Connection, Content-Type, Cookie, Host, Origin, Pragma, Referer, X-Requested-With, User-Agent Access-Control-Allow-Methods: GET, HEAD, POST, OPTIONS Access-Control-Allow-Origin: *
Настройка
Настройка доменов делает в файле конфигурации сервера config.yaml
. Для этого требуется перечислить все разрешенные домены в разделе httpd1
в ключе cors_origin
. Поддомены поддерживаются автоматически.
httpd1: # listen: ":3001" # Public API host:port. # listen_tls: ":4001" # Public TLS API. # enable_tls: false # Enables TLS API, requires certificate and key. # certificate: "config/cert.pem" # Path to a certificate in PEM format with CA certs (as in Nginx). # key: "config/key.pem" # Path to a private key in PEM format (as in Nginx). cors_origin: "" # Allowed CORS domains, for example: "localhost, mycompany.ru". An empty string means all are allowed.