Вызовите форму RESTlet Suitelet с учетными данными пользователя
У меня есть встроенный пакет Suitelet (по крайней мере, я так думаю... новичок в пакетах Suitelet, он размещен в NetSuite). Я пытаюсь использовать внутренний URL для своего рестлета, но каждый раз, когда я делаю это, я получаю сообщение об ошибке, что мне нужен полный URL-адрес для вызова http. Если я использую внешний URL, он работает, но только если я передаю свои учетные данные в заголовок.
Есть ли способ получить учетные данные пользователя? Или на самом деле использовать внутренний URL и просто держать все внутри с ролями текущего пользователя? Рестлет создает записи, и я бы предпочел, чтобы владельцем был пользователь, выполняющий действие, а не я.
Спасибо!
1 ответ
При использовании внутреннего URL лучше использовать url.resolveScript
из модуля URL
Он возвращает внешнюю или внутреннюю строку URL в скрипт.
var output = url.resolveScript({
scriptId: 'custom_script',
deploymentId: 'custom_script_deployment',
returnExternalUrl: false
});
Используйте запрос HTTPS в модуле HTTPS для отправки запроса
Для RESTlet, вызываемого из внешнего клиента, вы можете использовать OAuth или специфический для NetSuite метод NLAuth в заголовке HTTP Authorization. OAuth использует аутентификацию на основе токенов (TBA) для доступа к ресурсам от имени пользователя, что устраняет необходимость совместного использования учетных данных, таких как имя пользователя и пароль. См. Использование OAuth в заголовке авторизации.
NLAuth передает учетные данные NetSuite, такие как идентификатор компании, имя пользователя, пароль и роль. См. Использование NLAuth в заголовке авторизации.
Для RESTlet, вызываемого от клиента, размещенного в той же учетной записи NetSuite, в которой находится RESTlet, вам не нужно передавать информацию аутентификации в HTTP-запросе. Происходит проверка всех допустимых файлов cookie сеанса NetSuite, и этот существующий сеанс используется повторно.
Для получения дополнительной информации см. Аутентификация для RESTlets.