首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JWT令牌不以Bearer开头

JWT令牌不以Bearer开头
EN

Stack Overflow用户
提问于 2022-05-13 16:14:40
回答 1查看 61关注 0票数 0

我想不出一种方法来增加比勒

在本地主机上:8080我得到了这个

这个应用程序没有/error的显式映射,所以您认为这是一个退步。

5月14日(星期六):13:48 CST 2022发生了一个意外的错误(type=Unauthorized,status=401)。未经授权

JwtUtil.java

代码语言:javascript
复制
    package com.ecommerce.site.util;

public class JwtUtil {
    @Value("${jwt.secret}")
    private String SECRET_KEY;
    

    private static final int TOKEN_VALIDITY = 3600 * 5;

    public String getUsernameFromToken(String token) {
        return getClaimFromToken(token, Claims::getSubject);
    }

    public <T> T getClaimFromToken(String token, Function<Claims, T> claimsResolver) {
        final Claims claims = getAllClaimsFromToken(token);
        return claimsResolver.apply(claims);
    }

    private Claims getAllClaimsFromToken(String token) {
        return Jwts.parser().setSigningKey(SECRET_KEY).parseClaimsJws(token).getBody();
    }

    public Boolean validateToken(String token, UserDetails userDetails) {
        final String username = getUsernameFromToken(token);
        return (username.equals(userDetails.getUsername()) && !isTokenExpired(token));
    }

    private Boolean isTokenExpired(String token) {
        final Date expiration = getExpirationDateFromToken(token);
        return expiration.before(new Date());
    }

    public Date getExpirationDateFromToken(String token) {
        return getClaimFromToken(token, Claims::getExpiration);
    }

    public String generateToken(UserDetails userDetails) {

        Map<String, Object> claims = new HashMap<>();
        

        return Jwts.builder()
                .setClaims(claims)
                .setSubject(userDetails.getUsername())
                .setIssuedAt(new Date(System.currentTimeMillis()))
                .setExpiration(new Date(System.currentTimeMillis() + TOKEN_VALIDITY * 1000))
                .signWith(SignatureAlgorithm.HS512, SECRET_KEY)
                .compact();
                
    }
}

enter code here
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-18 23:17:51

我通过清除web应用程序中的本地存储来修正我的错误,因为有一个旧的令牌被存储起来,把事情搞砸了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72232565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档