2017-09-08 24 views
1
Token has expired 
    at ServiceStack.Auth.JwtAuthProviderReader.AssertJwtPayloadIsValid(JsonObject jwtPayload) 
    at ServiceStack.Auth.JwtAuthProviderReader.CreateSessionFromPayload(IRequest req, JsonObject jwtPayload) 
    at ServiceStack.Auth.JwtAuthProviderReader.PreAuthenticate(IRequest req, IResponse res) 
    at ServiceStack.EnumerableExtensions.Each[T](IEnumerable`1 values, Action`1 action) 
    at ServiceStack.AuthenticateAttribute.Execute(IRequest req, IResponse res, Object requestDto) 
    at ServiceStack.ServiceStackHost.ApplyRequestFiltersSingle(IRequest req, IResponse res, Object requestDto) 
    at ServiceStack.ServiceStackHost.ApplyRequestFilters(IRequest req, IResponse res, Object requestDto) 
    at ServiceStack.Host.Handlers.GenericHandler.ProcessRequestAsync(IRequest httpReq, IResponse httpRes, String operationName) 

この例外は頻繁に発生します。トークンの有効期限が切れています

Plugins.Add(new AuthFeature(() => new AuthUserSession(), 
    new IAuthProvider[] 
    { 
     new CredentialsAuthProvider(), 
     new JwtAuthProvider(AppSettings) 
     { 
      AuthKeyBase64 = Configuration.GetValue("AuthKeyBase64"), 
      RequireSecureConnection = false, 
      PersistSession = false 
     } 
    } 
)); 

それは私がちょうど間違ったやり方であるべきですか?

答えて

1

例外は、JWTトークンが期限切れになったことを示します。クライアントが新しい証明書を取得するために再認証する必要がある場合、またはuse its refresh tokenです。

new JwtAuthProvider { 
    ExpireTokensIn  = TimeSpan.FromDays(14), // JWT Token Expiry 
    ExpireRefreshTokensIn = TimeSpan.FromDays(365), // Refresh Token Expiry 
} 
:有効ですどのくらいJWTs制御する設定を含む

JWT docs contains a lot of detail on JWT expiration

関連する問題