OAuth 2.0代码授权流程
问题描述:
OAuth 2.0授权服务器的sample implementation以及每种授权类型的示例工作流程。OAuth 2.0代码授权流程
IETF对Code Grant Flow有OAuth 2.0规范。 当您在IETF代码授权流程的图表中查看“D”&“E”步骤时,它们似乎不会在样本实施(第一个链接)中实施。
示例实现中的步骤D & E在哪里? 我知道这是一个未准备好生产的示例实现,但我认为它将遵循OAuth 2.0的规范。
在示例应用程序中,客户端获取代码,但不会将其转发到OAuth服务器以获取令牌。 其实它获得的令牌,包括代码已经在步骤3
答
好吧,我下载了Microsoft.Owin来源,并通过代码调试。
DotnetOAuth客户端库发送令牌请求。 使用Fiddler时我看不到它,因为它使用WebRequest对象,因此不会被Fidddler ootb捕获!
令牌请求中包含的代码令牌和它也得到确认
它将在
ReceiveAuthenticationToken 事件处理程序进行验证。
代码令牌这里创建:
private void CreateAuthenticationToken(AuthenticationTokenCreateContext ctx)
{
var code = Guid.NewGuid().ToString("n") + Guid.NewGuid().ToString("n");
ctx.SetToken(code);
_authenticationCodes[ctx.Token] = ctx.SerializeTicket(); <-- stored in a concurrentDictionary as the key for the auth ticket, for demonstration purposes only
// delete the entry, must only be used once
}