cari
RumahJavajavaTutorialBagaimana untuk menghuraikan token JWT yang akan datang di Java dan mendapatkan maklumat di dalamnya?

Gunakan Java untuk menyahsulit semula-auth yang dijana token JWT dan dapatkan maklumat

Apabila menjana token JWT menggunakan auth seterusnya, kita menghadapi masalah: bagaimana untuk menghuraikan token ini di Jawa dan mendapatkan maklumat di dalamnya? Ini adalah keperluan yang sangat praktikal, terutamanya apabila pengesahan silang platform dan pengekstrakan data diperlukan.

Saya menjana token JWT menggunakan auth seterusnya dan menetapkan auth_secret = 123456 seperti yang ditunjukkan di bawah:

 Callbacks: {
    // ref: https://authjs.dev/guides/basics/role-based-access-control#persisting-the-role
    async jwt ({token, user}) {
        Kembali Token
    },
    // Sekiranya anda ingin menggunakan peranan dalam komponen klien
    sesi async ({sesi, pengguna, token}) {
        Sesi pulangan
    },
}

Token JWT yang dihasilkan adalah seperti berikut:

 eyjhbgcioijkaxiilcjlbmmioijbmju2q0jdluhtntiteyiiwia2lkijoib0y4su1ycv9szuxr yxhsevznzvnsuxc4vfnabnrrd1r0nmz1bnz1zzhbt2gtr2j1wkp4dnhhrllqb3fuavytrl92yz atwgxqukdarlrldkvon181vhcifq..dixteiywelvgcf5muhylqq.tscvrh0uxewydfj5g2sn _81ivsfsxpa5ffydycfw8w_n-qmyh3nbklp1cog1vbo2vbypsnormsfdi6nxzzyo264rvqsca ZDMRZL1LF-HLDTUXUPY8KUGIG828P1TPEIPX8HUEMR_H6YK7MWGMFDQW7DTZBREYVFA-MTSMY KQ_10GIGJGLHFD-YZR7EN_-77GQXOARYLUOAIZXGE8IYA3TMBYTDS9SGN55CVVNRDYCAK6GY4 ptlmikw0pindsicgyzhyhjyrfb1vchzvmjwzelxpwrwbjgn52twmfc3xiowbvsfsyfvr0znt6 MVDQW5LNYTDQ-TVUCDWWM-XDRRA5GW.BWAF05T99YVB1QYBGBFVPIK9T_ZUP2YQ5XUG26H7QNG

Walau bagaimanapun, apabila saya cuba menghuraikan token ini dengan Java, kesilapannya adalah seperti berikut:

 statik void me () {
    String jwt = "eyjhbgcioijkaxiilcjlbmmioijbmju2q0jdluhtnteyiiwia2lkijoib0y4su1ycv9szuxr yxhsevznzvnsuxc4vfnabnrrd1r0nmz1bnz1zzhbt2gtr2j1wkp4dnhhrllqb3fuavytrl92yz atwgxqukdarlrldkvon181vhcifq..dixteiywelvgcf5muhylqq.tscvrh0uxewydfj5g2sn _81ivsfsxpa5ffydycfw8w_n-qmyh3nbklp1cog1vbo2vbypsnormsfdi6nxzzyo264rvqscaz DMRZL1LF-HLDTUXUPY8KUGIG828P1TPEIPX8HUEMR_H6YK7MWGMFDQW7DTZBREYVFA-MTSMYK Q_10GIGJGLHFD-YZR7EN_-77GQXOARYLUOAIZXGE8IYA3TMBYTDS9SGN55CVVNRDYCAK6GY4PT lmikw0pindsicgyzhyhjyrfb1vchzvmjwzelxpwrwbjgn52twmfc3xiowbvsfsfsfsfsfsfvr0znt6mv DQW5LNYTDQ-TVUCDWWM-XDRRA5GW.BWAF05T99YVB1QYBGBFVPIK9T_ZUP2YQ5XUG26H7QNG ";

    Cuba {
        // Konfigurasikan parser JWT, tetapkan kunci tandatangan dan tuntutan algoritma yang dibenarkan = JWTS.ParserBuilder ()
                .setsigningKey ("123456") // Tetapkan kunci tandatangan.SetAllowedClockSkewSeconds (60) // sisihan masa yang dibenarkan (pilihan)
                .build ()
                .parseclaimsjws (jwt) // parse token dan secara automatik mengesahkan tandatangan.getBody (); // Dapatkan objek tuntutan // Dapatkan maklumat yang anda perlukan dari subjek String Objek Tuntutan = Tuntutan.GetSubject ();
        // ... dapatkan sistem maklumat tuntutan lain.out.println ("subjek:" subjek);
        // ... cetak maklumat lain} tangkapan (pengecualian e) {
        // Mengendalikan pengecualian, yang mungkin tandatangan tidak sah, token yang tamat tempoh atau masalah lain e.printstackTrace ();
    }
}

Mesej ralat:

 IO.JSONWEBTOKEN.MALFORMEDJWTEXception: JWT Strings mesti mengandungi tepat 2 aksara tempoh. dijumpai: 4
    di io.jsonwebtoken.impl.defaultjwtparser.parse (defaultjwtparser.java:296)
    di io.jsonwebtoken.impl.defaultjwtparser.parse (defaultjwtparser.java:550)
    di io.jsonwebtoken.impl.defaultjwtparser.parseclaimsjws (defaultjwtparser.java:610)
    di io.jsonwebtoken.impl.immutablejwtparser.parseclaimsjws (immutablejwtparser.java:173)
    di com.seaurl.gatewaysvr.gateWayserverApplication.me (GatewayserverApplication.java:32)
    di com.seaurl.gatewaysvr.gateWayserverApplication.main (GatewayserverApplication.java:49)

Masalahnya adalah bahawa token yang dihasilkan oleh Next-Auth disulitkan dan hanya untuk permohonan semasa. Jika anda ingin menggunakan token dalam aplikasi pihak ketiga, anda boleh menyediakan token tersuai dalam sesi selepas log masuk. Sebagai contoh:

 session.accessToken = your_token

Dengan cara ini, kita boleh memproses token ini di Java dan mendapatkan maklumat di dalamnya.

Atas ialah kandungan terperinci Bagaimana untuk menghuraikan token JWT yang akan datang di Java dan mendapatkan maklumat di dalamnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Kemerdekaan Platform Java: Keserasian dengan OS yang berbezaKemerdekaan Platform Java: Keserasian dengan OS yang berbezaMay 13, 2025 am 12:11 AM

Javaachievesplatformindependencethroughthejavavirtualmachine (JVM), membenarkancodetorunondifferentoperatingsystemswithoutmodification.thejvmcompilesjavacodeintoplatform-bebastbytecode, yang mana-mana

Ciri -ciri apa yang menjadikan Java masih kuatCiri -ciri apa yang menjadikan Java masih kuatMay 13, 2025 am 12:05 AM

Javaispowerfulduetoitsplatformindantrectence, orientednature orientednature, richstandardlibrary, perfanksapabilities, andstrongSecurityfeatures.1) PlatformIndendenceAllowsApplicationStorAnanydeviceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceDeviceViceDeviceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceViceD

Ciri -ciri Java Teratas: Panduan Komprehensif untuk PemajuCiri -ciri Java Teratas: Panduan Komprehensif untuk PemajuMay 13, 2025 am 12:04 AM

Fungsi Java teratas termasuk: 1) pengaturcaraan berorientasikan objek, menyokong polimorfisme, meningkatkan fleksibiliti kod dan pemeliharaan; 2) mekanisme pengendalian pengecualian, meningkatkan keteguhan kod melalui blok percubaan-catch-finally; 3) pengumpulan sampah, memudahkan pengurusan memori; 4) generik, meningkatkan keselamatan jenis; 5) Ekspresi AMBDA dan pengaturcaraan berfungsi untuk menjadikan kod lebih ringkas dan ekspresif; 6) Perpustakaan standard yang kaya, menyediakan struktur data dan algoritma yang dioptimumkan.

Adakah Java benar -benar platform bebas? Bagaimana 'tulis sekali, jalankan di mana sahaja' berfungsiAdakah Java benar -benar platform bebas? Bagaimana 'tulis sekali, jalankan di mana sahaja' berfungsiMay 13, 2025 am 12:03 AM

Javaisnotentirelyplatformindependentduetojvmvariationsandnativecodeintegration, butitlargelyupholdsitsworapromise.1) javacompil estobytecoderunbythejvm, membolehkanCross-platformexecution.2) Walau bagaimanapun, setiap satuplatformrequiresaspecificjvm, dandifferencesinjvmimpleme

Demystifying the JVM: Kunci anda untuk memahami pelaksanaan JavaDemystifying the JVM: Kunci anda untuk memahami pelaksanaan JavaMay 13, 2025 am 12:02 AM

Thjavavirtualmachine (jvm) isanabstractcomputingmachinecrucialforjavaexecutionasitrunsjavabytecode, enablingthe "writeonce, rayanywhere" kemampuan.TheJvm'skeycomponentlude: 1)

Adakah Java masih merupakan bahasa yang baik berdasarkan ciri -ciri baru?Adakah Java masih merupakan bahasa yang baik berdasarkan ciri -ciri baru?May 12, 2025 am 12:12 AM

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)

Apa yang menjadikan Java hebat? Ciri dan faedah utamaApa yang menjadikan Java hebat? Ciri dan faedah utamaMay 12, 2025 am 12:11 AM

Javaisgreatduetoitsplatformindantrect, robustoopsupport, extensivelibraries, andstrongcommunity.1) platformindependenceviajvmallowscodetorunonvariousplatforms.2)

Ciri -ciri Java 5 Teratas: Contoh dan PenjelasanCiri -ciri Java 5 Teratas: Contoh dan PenjelasanMay 12, 2025 am 12:09 AM

Lima ciri utama Java adalah polimorfisme, ekspresi lambda, streamsapi, generik dan pengendalian pengecualian. 1. Polimorfisme membolehkan objek kelas yang berbeza digunakan sebagai objek kelas asas biasa. 2. Ekspresi Lambda menjadikan kod lebih ringkas, terutama sesuai untuk mengendalikan koleksi dan aliran. 3.StreamsAPI dengan cekap memproses set data yang besar dan menyokong operasi deklaratif. 4. Generik menyediakan jenis keselamatan dan kebolehgunaan semula, dan kesilapan jenis ditangkap semasa penyusunan. 5. Pengendalian Pengecualian membantu mengendalikan kesilapan dengan elegan dan menulis perisian yang boleh dipercayai.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

EditPlus versi Cina retak

EditPlus versi Cina retak

Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.