使用 MVC 5 创建 OAuth2.0 登录应用程序

问题描述

我需要你的帮助.... 我需要一些代码来让我开始使用我正在使用的应用程序。 我有一个 MVC5 应用程序,它将用户登录到规划中心,然后重定向回我的网站以执行一些任务。手头的问题是我很难理解如何使用 OAuth 2.0 规范对用户进行身份验证。下面提供了规划中心需要的详细信息,以便我登录和使用他们的 API:

1.使用您的实际重定向 URI 将用户的浏览器重定向https://api.planningcenteronline.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=https://example.com/auth/complete&response_type=code&scope=peoplereplace CLIENT_ID 和 https://example.com/auth/complete。如果您需要不同的范围,请适当替换 scope=people(请参阅下面的“范围”部分)。

2.Planning Center 会使用代码参数将用户的浏览器重定向回给定的重定向 URI。

3.在后台https://api.planningcenteronline.com/oauth/token发送一个POST请求,参数如下: {"grant_type": "authorization_code","code": "CODE_FROM_STEP_2","client_id": "CLIENT_ID","client_secret": "CLIENT_SECRET","redirect_uri": "https://example.com/auth/complete" }

(适当地替换 CLIENT_ID、CLIENT_SECRET、CODE_FROM_STEP_2 和重定向 URI)。 curl -X POST https://api.planningcenteronline.com/oauth/token
-F grant_type=authorization_code
-F 代码=1234567890
-F client_id=2345678901
-F client_secret=3456789012
-F redirect_uri=https://example.com/auth/complete

  1. 您返回的响应将包含访问令牌和其他信息。 { "access_token": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","token_type": "承载",“expires_in”:7200, "refresh_token": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef","范围": "人",“created_at”:1469553476 }

  2. 使用 Bearer 身份验证方案,通过在 Authorization 标头中传递访问令牌,将访问令牌用于所有 API 请求。 curl -H '授权:承载 1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef' https://api.planningcenteronline.com/people/v2/people

文档的完整链接 - https://developer.planning.center/docs/#/introduction/authentication

我只需要开始,我不确定在哪里。大多数例子都很难理解,也没有提供足够的细节。

如有任何帮助,我们将不胜感激。

提前致谢。

解决方法

在授权代码流中,您需要发出两个请求才能从授权服务器取回令牌。第一个是针对要求用户登录的授权端点。成功登录后,客户端将从授权服务器返回一个代码,因此名称授权代码流,用于对令牌端点的第二次请求。通过发送有效代码,服务器将发送带有访问令牌的响应,以便您可以使用它访问受保护的资源。

您可以从 auth0 网站的序列图中获得更多信息: https://auth0.com/docs/flows/authorization-code-flow