首页 > 解决方案 > 使用 MVC 5 创建 OAuth2.0 登录应用程序

问题描述

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

1.将用户浏览器重定向到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与您的实际重定向 URI)。如果您需要不同的范围,请适当地替换 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 code=1234567890
-F client_id=
2345678901 -F client_secret=3456789012
-F redirect_uri=https://example.com/auth /完全的

  1. 您返回的响应将包含访问令牌和其他信息。{ "access_token": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "token_type": "bearer", "expires_in": 7200, "refresh_token": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", "scope": "people", "created_at": 1469553476 }

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

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

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

任何帮助将不胜感激。

先感谢您。

标签: asp.net-mvcoauth-2.0

解决方案


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

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


推荐阅读