Я пытаюсь запросить api github с помощью токена. Api Github принимает сгенерированные токены при условии, что они отправляются как основной заголовок auth.Как использовать Basic Auth с libsoup через Gjs
API не возвращает HTTP 401, если вызов выполняется без аутентификации, что означает, что если вы хотите запросить их api с использованием Basic Auth, необходимо заполнить заголовок упреждающим образом, а не совершать двустороннюю поездку.
Теперь я пытаюсь запросить API с помощью libsoup и Gjs.
Я заметил, что у SoupAuthManager есть функция, которая, кажется, идеально подходит мне (soup_auth_manager_use_auth here), но не может найти способ ее вызвать.
Это может быть использован для «предварительной нагрузки» кэш аутентификации менеджера «s, чтобы избежать дополнительного HTTP путешествия туда и обратно в том случае, если вы знаете заранее, что будет возвращен 401 ответа
Этого это то, что я сейчас использую, но он не работает, поскольку SoupAuthManager является частным объектом сеанса; и не имеет поэтому никакого влияния на реальное поведение программы
let httpSession = new Soup.Session();
let authUri = new Soup.URI(url);
authUri.set_user(this.handle);
authUri.set_password(this.token);
let message = new Soup.Message({method: 'GET', uri: authUri});
let authManager = new Soup.AuthManager();
let auth = new Soup.AuthBasic({host: 'api.github.com', realm: 'Github Api'});
authManager.use_auth(authUri, auth);
httpSession.queue_message(message, ...);
Существуют ли другие методы, которые я мог бы использовать, чтобы заставить Basic Auth на первой Roud поездки? или есть ли другая библиотека, которую я мог бы использовать из gjs для вызова API github и принудительного базового auth?