首页 > 解决方案 > 如何从调用使用 .NET Core 3 构建的 API 的 react js 内置网站生成和/或获取 access_token 和 refresh_token?

问题描述

我正在使用调用 RESTful API(使用 .NET Core 3.1 构建)的反应构建 Web 应用程序。Web 应用程序和即将推出的移动应用程序通过 API 访问所有数据。我想集成身份验证/授权,但想知道从哪里开始。我正在考虑使用 IdentityServer4 来构建一个令牌服务,但这可能有点矫枉过正,尤其是安全性不是我的专长。但我也想要一些我可以轻松集成/使用但也不只与一个令牌提供者绑定的东西(例如,仅限 MS)——这将过于严格,因为目标用户可能更喜欢使用用户名/密码,或者他们的谷歌/MS/fb....)。我该怎么办?我应该从哪里开始?

标签: asp.net-coreoauth-2.0openid-connectasp.net-core-3.1sts-securitytokenservice

解决方案


好吧,这里是移动部分,并且有相当大的学习曲线,因为 OAuth 技术涵盖了许多架构方面。我的目标是在早期主要关注 UI 和 API 集成。

授权服务器 (AS)

这将处理登录屏幕、基于标准的消息、颁发令牌、审计等。我建议从免费或低成本的云服务开始,这样您就可以快速入门并了解如何管理系统。

蜜蜂

这些将验证传入的访问令牌并构建声明主体。我将首先了解您需要哪些声明以及在验证令牌后如何授权请求。

网页界面

它们使用授权代码流 (PKCE),然后处理和验证 OAuth 响应。一个常用的库是oidc-client,它将为您处理很多复杂性。

移动用户界面

这些使用与上述相同的流程,但使用处理凭据的应用内浏览器。最常用的库是AppAuth,它处理移动管道。

可扩展性

集成上述部分后,您应该能够在不更改任何代码的情况下执行此操作:

在线代码示例

我的博客有一堆UI 和 API 代码示例,您可以在本地 PC 上运行,从Initial Code Sample开始,然后转到更高级的示例,例如带有 .Net Core API 的 React SPA


推荐阅读