我不确定您用于实现此目的的技术,但如果您的应用程序是 .Net/.Net Core MVC 应用程序,那么 Microsoft 提供了相同的示例代码:VSTS 示例代码 C#
但是,如果您的应用程序类似于我的应用程序、SPA(角度)和 .Net Core 后端,那么没有文档清楚地描述在这种情况下哪些部分应该去哪里以及如何实现 OAuth 流。为了回答这个问题,我通过以下方式实现了这一点:
- 在 VSTS 上注册您的应用程序,回调 url 指向您的 UI 应用程序上的回调路由。
- 在后端添加 Authorize 函数以调用 VSTS 授权端点。
- 在您想要连接到 VSTS API 的 UI 上有一个按钮/链接,将其指向后端的授权功能。从后端而不是 ui 调用 vsts 授权端点的原因是,vsts 授权返回 302 重定向响应,而 Angular 4+ 仍然有一个明确的方法来处理这个问题。.Net MVC 具有很好地处理它的 redirectreult 方法。
- 一旦调用授权,您将看到显示所有范围的接受/拒绝屏幕。
- 一旦用户接受它,他将重定向到指向您的 UI 的回调 url。
- 从 UI 中的回调 url 获取授权码,提取代码并将其传递给 API。
- API 将通过传递 Auth 代码和客户端密码来调用 vsts 令牌端点。
- API 将收到 Auth Token 和 Refresh Token。
- 使用 auth token 进行 VSTS api 调用并持久化刷新 token(有很多文章提到如何安全处理 token)。
就是这样,OAuth 流可以通过上述方式在 Angular 和 .Net Core 中实现。
请注意,这是微软没有记录的东西,所以这种方法可能存在缺陷,我愿意学习和纠正。
请发表评论以获取示例回购。