Как отправить клиенту, что его токен истек? - PullRequest
0 голосов
/ 12 октября 2019

Я использую аутентификацию JWT в своем приложении ASP.NET Core:

services.AddAuthentication(options =>
{
    options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
    options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;

}).AddJwtBearer(options =>
{
    options.Authority = domain;
    options.Audience = Configuration["Auth0:ApiIdentifier"];
});

Как я могу уведомить клиента об истечении срока действия его токена? Может быть какое-то тело в ответе 401 или другой код ответа?

1 Ответ

1 голос
/ 12 октября 2019

Он вернет 401 Unauthorized в качестве кода состояния и содержит код ошибки / описание в заголовке WWW-Authenticate:

WWW-Authenticate: Bearer error="invalid_token", error_description="The token is expired"

Вы также можете вручную написать сообщение об ошибке:

options.Events = new JwtBearerEvents()
{
    OnChallenge = context =>
    {
        // Skip the default logic.
        context.HandleResponse();

        var payload = new JObject
        {
            ["error"] = context.Error,
            ["error_description"] = context.ErrorDescription,
            ["error_uri"] = context.ErrorUri
        };

        return context.Response.WriteAsync(payload.ToString());
    }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...