Я создал службу в бэкэнде SAP, которая служит для соединений через веб-сокеты.Я хочу подключиться к этому сервису из приложения SAPUI5.Я подключаюсь к сервису так:
sap.ui.require("sap/ui/core/ws/WebSocket");
var socket = new WebSocket(
'ws://<host>:<port>/sap/bc/apc/sap/z_reg_test_push_ch');
Когда вызывается этот фрагмент кода, я получаю:
WebSocket connection to 'ws://<host>:<port>/sap/bc/apc/sap/z_reg_test_push_ch' failed: HTTP Authentication failed; no valid credentials available
Когда я тестирую сервис из бэкэнда, он открывает URL сервиса вхром и просит у меня учетные данные.Затем, когда я обновляю приложение UI5, устанавливается соединение с веб-сервисом, поскольку пользователь уже вошел в тот же сеанс в chrome при тестировании службы из бэкэнда.
В приложении SAPUI5 я могу получить доступ к токену безопасности, который был возвращен приподключение к услуге oData.Я могу получить доступ, как это:
var oModel = sap.ui.getCore().getModel();
oModel.getSecurityToken();
токен выглядит так: cKYPxpo7-BELSah1D1WRgg==
Я нашел поток , что я должен создать соединение websocket какэто:
new WebSocket('ws://<host>:<port>/sap/bc/apc/sap/z_reg_test_push_ch',["access_token", oModel.getSecurityToken()]);
Но я получаю это сообщение:
Uncaught DOMException: Failed to construct 'WebSocket': The subprotocol 'cKYPxpo7-BELSah1D1WRgg==' is invalid.
Подводя итог.Я авторизован службой oData через базовую аутентификацию и хочу передать сокету информацию аутентификации.