Duolingo JWT Token

Get your jwt_token!

Você precisará instalar uma extensão como Tampermonkey, Greasemonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Violentmonkey para instalar este script.

Você precisará instalar uma extensão como Tampermonkey ou Userscripts para instalar este script.

Você precisará instalar uma extensão como o Tampermonkey para instalar este script.

Você precisará instalar um gerenciador de scripts de usuário para instalar este script.

(Eu já tenho um gerenciador de scripts de usuário, me deixe instalá-lo!)

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar uma extensão como o Stylus para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

Você precisará instalar um gerenciador de estilos de usuário para instalar este estilo.

(Eu já possuo um gerenciador de estilos de usuário, me deixar fazer a instalação!)

// ==UserScript==
// @name         Duolingo JWT Token
// @namespace    http://tampermonkey.net/
// @version      1.0.1
// @description  Get your jwt_token!
// @author       airpl4ne
// @match        https://www.duolingo.com/*
// @icon         https://github.com/pillowslua/crackduo/blob/main/hacklingo.png?raw=true
// @license MIT
// @grant        GM_addStyle
// ==/UserScript==

//use this script to get jwt_token
//free bots : https://discord.gg/Gvmd7deFtS

(function() {
    'use strict';

    // css
    GM_addStyle(`
      #jwtToolBox {
        position: fixed;
        top: 80px;
        right: 20px;
        background: #1cb0f6;
        color: white;
        font-family: Arial, sans-serif;
        font-size: 14px;
        padding: 15px;
        border-radius: 12px;
        z-index: 99999;
        box-shadow: 0 4px 10px rgba(0,0,0,0.2);
      }
      #jwtToolBox button {
        background: #fff;
        color: #1cb0f6;
        border: none;
        padding: 6px 10px;
        margin-top: 8px;
        border-radius: 8px;
        cursor: pointer;
        font-weight: bold;
      }
      #jwtToolBox button:hover {
        background: #f0f0f0;
      }
      #jwtTokenDisplay {
        margin-top: 10px;
        word-break: break-all;
        max-width: 250px;
        background: rgba(255,255,255,0.15);
        padding: 6px;
        border-radius: 6px;
      }
    `);

    // create box /ui
    const box = document.createElement("div");
    box.id = "jwtToolBox";
    box.innerHTML = `
      <div><b>🔑 Duolingo JWT Tool</b></div>
      <button id="getTokenBtn">Get jwt_token</button>
      <div id="jwtTokenDisplay">[Chưa lấy]</div>
    `;
    document.body.appendChild(box);

    // credit : hoangtienghi_ discord
    function getJwtToken() {
        let match = document.cookie.match(new RegExp('(^| )jwt_token=([^;]+)'));
        if (match) {
            return match[2];
        }
        return null;
    }

    // event
    document.getElementById("getTokenBtn").addEventListener("click", () => {
        let token = getJwtToken();
        let display = document.getElementById("jwtTokenDisplay");
        if (token) {
            display.textContent = token;
        } else {
            display.textContent = "❌ Không tìm thấy jwt_token!";
        }
    });
})();