React 앱에서 SSO 기능을 구현하려는데 nonce 오류가 계속 발생합니다

이미 enable discourse connect를 확인했고, discourse connect url을 지정했으며, discourse connect secret도 성공적으로 설정했습니다.
discourse connect url 페이지에서는 다음과 같은 작업을 수행하고 있습니다:

function rediretUserToDiscourse(user) {
        const url = new URL(window.location)
        const searchParams = new URLSearchParams(url.search);
        const ssoValue = searchParams.get("sso");
        const decodedSSOValue = window.atob(ssoValue);
        const queryParams = decodedSSOValue.split("&");

        let nonce = null;
        for (let param of queryParams) {
            const [key, value] = param.split("=");
            if (key === "nonce") {
                nonce = value;
                break;
            }
        }

        if (user) {
            const payload = `nonce=${nonce}&name=${user.username}&username=${user.username}&email=${user.email}&external_id=${user.id}&avatar_url=${user.avatar}`;

            const encodedPayload = window.btoa(JSON.stringify(payload));
            const secret = "discourse_connect_secret";

            hmac(encodedPayload, secret, HmacAlgorithms.HmacSHA256, Encoders.hex)
                .then(signature => {
                    if (signature) {
                        const discourseLoginURL = `https://community.mydomaine.co/session/sso_login?sso=${encodedPayload}&sig=${signature}`;
                        window.location.href = discourseLoginURL;
                    }
                });
        }
    };

모든 것이 완벽하게 작동합니다(서명이 유효하고 discourse로 리디렉션됩니다). 하지만 계속 다음과 같은 오류가 발생합니다: Nonce is incorrect, was generated in a different browser session, or has expired(Nonce가 올바르지 않거나, 다른 브라우저 세션에서 생성되었거나, 만료되었습니다). 이 사이트, 구글, ChatGPT(왜 안 될까요 :p)에서 몇 시간 동안 해결책을 찾아봤지만 아직 해결책을 찾지 못했습니다.

혹시 이 문제를 어떻게 해결할 수 있는지 아시는 분이 계신가요? 부탁드립니다.