AD Bearer-helper
Este script no debería instalarse directamente. Es una biblioteca que utilizan otros scripts mediante la meta-directiva de inclusión // @require https://update.greatest.deepsurf.us/scripts/570871/1809796/AD%20-%20Bearer-update%20v3.js
(function() {
'use strict';
const globalScope = typeof unsafeWindow !== "undefined" ? unsafeWindow : window;
if (globalScope.__myGlobalScriptLock) {
return;
}
globalScope.__myGlobalScriptLock = GM_info.script.name;
(function() {
const TOKEN_ENDPOINT = "https://login.autodarts.io/realms/autodarts/protocol/openid-connect/token";
// 1. Fetch Hook
const originalFetch = window.fetch;
window.fetch = function (...args) {
const promise = originalFetch.apply(this, args);
try {
const url = args[0] instanceof Request ? args[0].url : String(args[0]);
if (url.includes(TOKEN_ENDPOINT)) {
promise.then(res => res.clone().json().then(body => {
if (body.access_token) {
window.postMessage({ type: "AD_TOKEN_UPDATE", token: body.access_token }, "*");
}
})).catch(() => {});
}
} catch (e) {}
return promise;
};
// 2. XHR Hook
const orgSetHeader = XMLHttpRequest.prototype.setRequestHeader;
XMLHttpRequest.prototype.setRequestHeader = function (name, value) {
if (name.toLowerCase() === "authorization" && value.startsWith("Bearer ")) {
const token = value.slice(7);
window.postMessage({ type: "AD_TOKEN_UPDATE", token: token }, "*");
localStorage.setItem("bearer", "bearer " + token);
localStorage.setItem("bearer_ts", Date.now());
}
return orgSetHeader.call(this, name, value);
};
})();
})();