java JWT 生成和解析token


采用 io.jsonwebtoken 版

導入maven

        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-api</artifactId>
            <version>0.11.2</version>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-impl</artifactId>
            <version>0.11.2</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>io.jsonwebtoken</groupId>
            <artifactId>jjwt-jackson</artifactId> <!-- or jjwt-gson if Gson is preferred -->
            <version>0.11.2</version>
            <scope>runtime</scope>
        </dependency>

 

實例

        //生成token
        Key key = Keys.secretKeyFor(SignatureAlgorithm.HS256);
        HashMap< String, Object > map = new HashMap<>( );
        map.put("username", "張三");
        map.put("password", "123456");
        String token = Jwts.builder( ).setClaims(map).setExpiration(DateUtils.addDays(new Date( ), 1)).signWith(key).compact( ); //過期時間
        System.err.println("token=" + token);
        //解析token
        Jws< Claims > claimsJws = Jwts.parserBuilder( ).setSigningKey(key).build( ).parseClaimsJws(token);
        Claims body = claimsJws.getBody( );
        System.err.println(body.get("username"));
        System.err.println(body.get("password"));

//            .setIssuer("me") //發行人
//            .setSubject("Bob") //項目
//            .setAudience("you") //用戶
//            .setExpiration(expiration) //過期時間
//            .setNotBefore(notBefore) //a java.util.Date
//            .setIssuedAt(new Date()) // 發行時間
//            .setId(UUID.randomUUID()) //id

更多方法:https://github.com/jwtk/jjwt#asymmetric-keys


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM