简体   繁体   中英

Enrich ASP.Net bearer token format

I have setup an ASP.NET WebApi project with support of bearer token like this:

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);

When I make a request to the token endpoint I have this answer

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

Is there any way to enrich the token with additional fields like this?

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

Well here is the solution:

In your class that inherits from OAuthAuthorizationServerProvider

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM