JWT令牌以前无法验证

时间:2017-09-25 06:10:06

标签: jwt

我上个月使用JWT,我没有遇到任何问题。但是从昨天开始,我遇到了这个错误,如下所示

com.auth0.jwt.exceptions.InvalidClaimException:之前无法使用令牌。 ..

我知道生成令牌时有一个时间戳,令牌不能  在此之前得到验证。令牌正在另一台服务器上验证。但一直以来,都很好。有人可以建议吗?

谢谢,

3 个答案:

答案 0 :(得分:3)

也许尝试使用https://jwt.io/查看您的JWT令牌 - 您能否确定它是否已过期?取exp值(可能是纪元)并转换 - https://www.epochconverter.com/

您在问题中添加的信息非常少,无法提供更多详细信息。您可以尝试(重新)使用上次向您发送JWT令牌的IDP进行身份验证,并检查是否也能解决您的问题。

根据您的上次评论,服务器是否有任何时钟偏差?

答案 1 :(得分:1)

如果您使用的是auth0-spring-security-api,则可以按照以下方式自定义leeway:

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

@Value(value = "${auth0.audience}")
private String apiAudience;

@Value(value = "${auth0.issuer}")
private String issuer;

@Override
protected void configure(HttpSecurity http) throws Exception {      
    final JwkProvider jwkProvider = new JwkProviderBuilder(issuer).build();
    JwtAuthenticationProvider jwtAuthenticationProvider = new JwtAuthenticationProvider(jwkProvider, issuer,
            apiAudience);
    jwtAuthenticationProvider.withJwtVerifierLeeway(3);

    JwtWebSecurityConfigurer.forRS256(apiAudience, issuer, jwtAuthenticationProvider).configure(http)
            .authorizeRequests().antMatchers("/**").authenticated();
}

答案 2 :(得分:0)

首先查看您的AUTH提供者租户设置。如果“登录会话管理->非活动超时” 设置得太低,请尝试增加它,看看错误是否发生。

OR

尝试:https://auth0.com/docs/libraries/auth0js/v8