2021-07-28

什么叫做单点登录

把一个总的系统拆分成无数个小的子系统,即一个系统登录,访问其他系统都无需登录。

单点登录的实现原理

登录成功后返回token令牌,前端将token令牌放到head请求头里面,每次访问带上token。

TOKEN生成的方式之JWT(JSON WEB TOKEN)

1.首先引入 jwt所依赖的资源(基于spingboot)

 <!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.10.3</version>
        </dependency>

2.生成 jwt的三点明确, head,payload , sign。其中 head 可以不写

     Calendar instance = Calendar.getInstance();
        instance.add(Calendar.DAY_OF_WEEK,7);
        String token = JWT.create()
        //设置token的失效时间
                .withExpiresAt(instance.getTime())
                //设置token的payload 
                .withClaim("name", "xiaom")
                 .withClaim("age", "123")
                 //设置 sign   注意这里的 12!e2  为密钥,验证token的时候需要
                .sign(Algorithm.HMAC256("12!e2"));
                

3.验证token

// 注意这里验证token的时候需要 生成时候的密钥。建议 生成token的时候 ,存入数据库里面
JWTVerifier build = JWT.require(Algorithm.HMAC256("12!e2")).build();
//        获取单个你存入payload的内容
        Claim value = verify.getClaim("name");
//        获取你全部存入payload的内容
        Map<String, Claim> claims = verify.getClaims();
     
      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值