【问题标题】:OAuth 2.0 Code Grant flowOAuth 2.0 代码授权流程
【发布时间】:2016-10-15 06:06:00
【问题描述】:

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

IETF 有一个针对 Code Grant Flow 的 OAuth 2.0 规范。 当您查看 IETF 代码授权流程图表中的步骤“D”和“E”时,它们似乎没有在示例实现中实现(第一个链接)。

示例实现中的步骤 D 和 E 在哪里? 我知道这是一个尚未准备好生产的示例实现,但我认为它将遵循 OAuth 2.0 的规范。

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

【问题讨论】:

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


    【解决方案1】:

    好的,我下载了Microsoft.Owin的源码并通过代码调试。

    DotnetOAuth 客户端库在后台发送令牌请求。 我在使用 Fiddler 时看不到它,因为它使用 WebRequest 对象,因此不会被 Fiddler 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
    }
    

    【讨论】:

      猜你喜欢
      • 2018-08-05
      • 2015-12-11
      • 1970-01-01
      • 2014-11-04
      • 2020-03-01
      • 2020-12-11
      • 2020-11-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多