#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. Куда именно вы бы это поместили? В каком классе?