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"));
  • 相关阅读:
    简易基础版单页面应用
    nginx服务器部署
    vim基础命令
    jsdoc — js注释
    eslint — js书写规范
    stylelint — css书写规范
    gulpfile.js(编译sass,压缩图片,自动刷新浏览器)
    gulp安装使用
    git常用命令
    generator-ivweb 基于react-redux的多页脚手架
  • 原文地址:https://www.cnblogs.com/dongma/p/10002301.html
Copyright © 2011-2022 走看看