如何从Owin Api创建Oauth2访问令牌
本文关键字:创建 Oauth2 访问令牌 Api Owin | 更新日期: 2023-09-27 18:24:56
如果由于某种审核原因,在AccessToken
创建后要求我将其存储到Db,是否存在返回AccessToken
的Owin 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获得?
当然可以,但您需要使用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);
}