Jwt的使用

token:

eyJhbGciOiJIUzI1NiJ9.(base64.encode(header))

eyJzdWIiOiJ1c2VybmFtZSIsImV4cCI6MTY0Nzc2MTU3M30.(base64(payload 载荷2 ,信息用户名,用户id))

GuO_mG8MIZBsHJebAL4Mk0sGvXYllxHt0jANIiPe0HM(散列加密(payload,盐(secret)))

public class JwtUtil {

    private static final String secret = "asdadac";

    public static String createToken(String subject){
        String token = Jwts.builder().setSubject(subject)
                .setExpiration(new Date(System.currentTimeMillis()+1000*40))
                .signWith(SignatureAlgorithm.HS256, secret)
                .compact();
        return token;
    }

    public static String parseToken(String token){
        Claims body = Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
        String subject = body.getSubject();
        return subject;
    }

    public static void main(String[] args) throws InterruptedException {

        String name = "哈哈";
        String token = createToken(name);
        System.out.println("token:"+token);

        String srcStr = parseToken(token);
        System.out.println("解析出来:"+srcStr);

        System.out.println("==================");

        TimeUnit.SECONDS.sleep(60);

        srcStr = parseToken(token);
        System.out.println("解析出来:"+srcStr);
    }

}
@PostMapping("/login")
public String login(@RequestBody UmsMemberLoginParamDTO umsMemberLoginParamDTO){
    return umsMemberService.login(umsMemberLoginParamDTO);
}
public String login(UmsMemberLoginParamDTO umsMemberLoginParamDTO) {
        UmsMember umsMember = umsMemberMapper.selectByName(umsMemberLoginParamDTO.getUsername());
        if(null!=umsMember){
            String passwordDb = umsMember.getPassword();
            if(!passwordEncoder.matches(umsMemberLoginParamDTO.getPassword(),passwordDb)){
                return "密码不正确";
            }
        }else{
            return "用户不存在";
        }

        String token = JwtUtil.createToken(umsMember.getUsername());

        System.out.println("登入成功");
        return token;
    }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值