1Password Extension Passkey Fix

Treat 1Password extension's response as a instance of window.PublicKeyCredential

// ==UserScript==
// @name        1Password Extension Passkey Fix
// @namespace   rinsuki.net
// @description Treat 1Password extension's response as a instance of window.PublicKeyCredential
// @version     1.0
// @match       https://accounts.nintendo.com/*
// @grant       none
// @homepageURL https://github.com/rinsuki/userscripts
// @supportURL  https://github.com/rinsuki/userscripts/issues
// ==/UserScript==

(function () {
    'use strict';

    (() => {
        const origPublicKeyCredential = window.PublicKeyCredential;
        window.PublicKeyCredential = new Proxy(origPublicKeyCredential, {
            get(...args) {
                if (args[1] === Symbol.hasInstance) {
                    return (instance) => {
                        if (typeof instance !== "object")
                            return false;
                        if (instance == null)
                            return false;
                        if (!("type" in instance))
                            return false;
                        if (instance.type !== "public-key")
                            return false;
                        if (!("id" in instance))
                            return false;
                        if (typeof instance.id !== "string")
                            return false;
                        return true;
                    };
                }
                return Reflect.get(...args);
            }
        });
    })();

})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址