zoukankan      html  css  js  c++  java
  • 使用jwt

    jwt:json web token

    使用jwt的好处
    1,无状态
    2解耦
    3,更适合于移动端Android,ios
    4,性能更好
    5,能够不考虑csrf攻击

    maven依赖

           <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>0.6.0</version>
            </dependency>

    ①,客户端请求

            Date date = new Date();
            JwtBuilder signWith = Jwts.builder()
                                    .setId("2")//id
                                    .setSubject("冬马")//名字
                                    .setIssuedAt(date)//创建时间
                                    .signWith(SignatureAlgorithm.HS256,"salt")//签名算法,盐
                                    .claim("role", "admin")//添加自定义属性
                                    .setExpiration(new Date(date.getTime() + 1000 * 60))//一分钟过期
                                    ;
            
            System.out.println(signWith.compact());

    ②,服务端接收

        Claims body = Jwts.parser().setSigningKey("salt")
            .parseClaimsJws("eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiIyIiwic3ViIjoi5Yas6amsIiwiaWF0IjoxNTQyODY0NzA5LCJyb2xlIjoiYWRtaW4iLCJleHAiOjE1NDI4NjQ3Njl9.cjALFF2h3YC5LwffcYSoEyRd9q14CT60Gp1dg5hf8vU") 
            .getBody();
            System.out.println("用户id:"+body.getId());
            System.out.println("用户名:"+body.getSubject());
            System.out.println("发布时间:"+body.getIssuedAt());
            System.out.println("过期时间:"+body.getExpiration());
            System.out.println("角色:"+body.get("role"));
  • 相关阅读:
    ajax(ajax开发)
    gnuplot常用技巧
    Gunplot 命令大全
    程序员的绘图利器 — Gnuplot
    什么是 gnuplot
    QT正则表达式---针对IP地址
    JSP实现分页功能
    java.lang.OutOfMemoryError: Java heap space错误及处理办法
    getInitParameter()
    C/S软件的自动升级部署
  • 原文地址:https://www.cnblogs.com/dongma/p/10002301.html
Copyright © 2011-2022 走看看