autodarts_token_v5

Generiert den bearer-token

このスクリプトは単体で利用できません。右のようなメタデータを含むスクリプトから、ライブラリとして読み込まれます: // @require https://update.greatest.deepsurf.us/scripts/576340/1814186/autodarts_token_v5.js

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

You will need to install an extension such as Tampermonkey to install this script.

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
(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", token);
                localStorage.setItem("bearer_ts", Date.now());
            }
            return orgSetHeader.call(this, name, value);
        };
    })();

})();