如何从Owin Api创建Oauth2访问令牌

本文关键字:创建 Oauth2 访问令牌 Api Owin | 更新日期: 2023-09-27 18:24:56

如果由于某种审核原因,在AccessToken创建后要求我将其存储到Db,是否存在返回AccessTokenOwin API类

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
    //check user credentials
    ....
    context.Validated(ticket);
    //Where should I get the generated token?
    }
}

我找到的唯一解决方法是在Global.Asax中创建一个Http过滤器,用于读取输出流并从中获取Token。

有没有更优雅的方法可以直接从Owin Api获得?

如何从Owin Api创建Oauth2访问令牌

当然可以,但您需要使用Microsoft.Owin.Security.Auth版本3.0而不是2.1,然后将类OAuthAuthorizationServerProvider中的TokenEndpointResponse重写为下面的代码

public override Task TokenEndpointResponse(OAuthTokenEndpointResponseContext context)
    {
        var accessToken = context.AccessToken;
        return Task.FromResult<object>(null);
    }