#c# #jwt #webapi
Вопрос:
Я пытаюсь создать решение webapi с аутентификацией токенов JWT.
В WebApiConfig я добавляю следующие строки в метод регистрации, чтобы webapi использовал только JWT:
config.SuppressDefaultHostAuthentication();
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
Вот моя декларация OAuthOptions от Startup.Auth.cs
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
// In production mode set AllowInsecureHttp = false
AllowInsecureHttp = true
};
// Enable the application to use bearer tokens to authenticate users
app.UseOAuthBearerTokens(OAuthOptions);
Как я понимаю, теперь я должен иметь возможность использовать свои токены в течение двух недель до истечения срока их действия.
Однако это не тот случай. Когда я работаю со своим API, примерно через час мне снова приходится обновлять его, потому что мои запросы начинают отскакивать с 401:
{
"Message": "Authorization has been denied for this request."
}
Похоже, он ведет себя немного как обычный сеанс, которого я бы хотел избежать. Есть ли какой-нибудь способ убедиться, что я смогу вернуться со своим токеном через неделю и обработать запросы?