Обогатить ASP.Net формат токена на предъявителя

#asp.net-web-api #oauth #bearer-token

#asp.net-web-api #oauth #токен на предъявителя

Вопрос:

Я настроил ASP.NET Проект WebAPI с поддержкой токена-носителя, подобного этому:

 var oAuthServerOptions = new OAuthAuthorizationServerOptions
{
    AllowInsecureHttp = true,
    TokenEndpointPath = new PathString("/token"),
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
    Provider = new SimpleAuthorizationServerProvider()
};

var oAuthBearerOptions = new OAuthBearerAuthenticationOptions();

app.UseOAuthAuthorizationServer(oAuthServerOptions);
app.UseOAuthBearerAuthentication(oAuthBearerOptions);
  

Когда я делаю запрос к конечной точке токена, у меня есть такой ответ

 {
    "access_token":"GST9UwSuesiYhkezr94K4xwuzvNQ",
    "token_type":"bearer",
    "expires_in":86399
}
  

Есть ли какой-либо способ обогатить токен дополнительными полями, подобными этому?

 {
    "access_token":"GST9UwSuesiYhkezr94K4xwuzvNQ",
    "token_type":"bearer",
    "expires_in":86399,
    "username":"user@mail.com"
}
  

Ответ №1:

Ну, вот решение:

В вашем классе, который наследуется от OAuthAuthorizationServerProvider

 public override async Task TokenEndpoint(OAuthTokenEndpointContext context)
{
    context.AdditionalResponseParameters.Add("username", "user@mail.com");

    return Task.FromResult<object>(null);
}
  

Комментарии:

1. Куда именно вы бы это поместили? В каком классе?