Использование SDK gooddata-js снаружи без node.js

Глядя на этот код, я вижу, что вызовы таких методов, как user.login(), не включают домен и поэтому работают только при запуске через задачу grunt dev.

Извините, если это нубский вопрос, но как мы можем запустить это в производство? Нам просто нужно вызвать user.isLoggedIn() и user.logout() из сценария на нашем сайте, но я не вижу, как мы это делаем с файлом dist.


person Russ Back    schedule 23.05.2014    source источник


Ответы (1)


В настоящее время мы не поддерживаем CORS, поэтому это возможно только с использованием какого-либо прокси-сервера на вашей стороне.

Теперь мы поддерживаем CORS на доменах с белой маркировкой, поэтому, если это ваш случай, вы можете встроить свой код в панель управления GoodData (см. руководство по внедрению Viz).

Единственной модификацией вашего кода будет вызов gooddata.config.setCustomDomain (см. документацию по API) перед любым фактическим вызовом API (например, login).

Вы можете начать с изменения нашего собственного прокси-сервера, используемого в задаче grunt dev — см. request_proxy.js и cookie_domain_stripper.js из https://github.com/gooddata/grunt-grizzly/tree/master/lib/middleware

person akloboucnik    schedule 23.05.2014
comment
Спасибо @akloboucnik. Я не совсем понимаю, как мы будем включать отредактированные версии этих файлов, поскольку мы не используем модульный подход. Это очень простой сайт со встроенным iframe, и у нас есть только копия jQuery и один файл скрипта для функциональности сайта. Можем ли мы просто включить копию каждого из них вместе с файлом JS SDK? - person Russ Back; 23.05.2014
comment
Извините - я недостаточно ясно выразился. Я имел в виду, что вам нужно использовать этот прокси на вашем бэкэнде (сервере, который обслуживает фактическую html-страницу, которую вы затем встраиваете). У вас, вероятно, есть какой-то бэкэнд, и вам нужно сделать так, чтобы, если ваш скрипт на html-странице запрашивает шаблон сопоставления URL-адресов /gdc/* (что делает gooddata-js), он будет проксироваться с вашего сервера на secure.gooddata.com (наша конечная точка API) - что в случае бэкэнда node.js можно достичь с помощью промежуточного программного обеспечения request_proxy.js по ссылке выше. - person akloboucnik; 23.05.2014
comment
Ах да, это, вероятно, превзошло мой уровень понимания на данный момент. Мы подключили прокси-скрипт и, используя пример входа в систему, видим исключение Java, которое выглядит так, как будто оно связано с тем, как URL вызывается или передается: сообщение: Invalid uri 'na1-www01:666/gdc/account/login?{%22postUserLogin%22:{%22login%22:%22USER%22 ,%22password%22:%22PASSWORD%22,%22remember%22:1,%22captcha%22:%22%22,%22verifyCaptcha%22:%22%22}}': неверный запрос. Можете ли вы оказать нам некоторую поддержку, чтобы заставить это работать? - person Russ Back; 27.05.2014