OAuth 2.0代码授予流程

时间:2016-06-14 13:15:42

标签: asp.net-mvc oauth oauth-2.0 dotnetopenauth

每个授权类型都有sample implementation OAuth 2.0授权服务器和示例工作流程。

IETF为Code Grant Flow提供了OAuth 2.0规范。 当你看看步骤" D" &安培; " E"在IETF代码授权流程图中,它们似乎不会在示例实现(第一个链接)中实现。

步骤D& E在示例实现中? 我知道这是一个非生产就绪的示例实现,但我认为它将遵循OAuth 2.0的规范。

在示例应用程序中,客户端获取代码,但不会将其转发到OAuth服务器以获取令牌。 实际上它已经获得了令牌,包括步骤3中的代码。

enter image description here

1 个答案:

答案 0 :(得分:0)

好的,我下载了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
}