首页 > 解决方案 > 如何在与 Web API 通信的 ASP.NET Core MVC 应用程序中使用自定义身份验证/授权?

问题描述

我想在 MVC/Razor Page 应用程序中使用身份验证/授权,该应用程序使用后端 API 来处理数据和身份验证令牌。API 发出访问和刷新 JWT 以进行有效登录,到目前为止我所做的是调用 API 并使用 HttpClient 获取这些令牌,然后将它们存储在 cookie 中。

但是,我必须手动检查令牌并在访问令牌过期时刷新它,并在用户注销时删除 cookie。我想知道是否有办法通过利用 ASP.NET Core 的身份验证和授权功能(例如使用 [Authorize] 将某些控制器限制为特定用户)以更合适的方法使用它。

标签: c#asp.net-coreasp.net-core-mvc

解决方案


Checkout Identity Server,它既是身份验证(使用 OpenIdConnect),也是授权服务器(使用 OAuth)。

然后在您的 WebApp(MVC/Razor 和 API 客户端)中简单地使用它的集成。如何将 ASP.NET MVC 设置为 IdentityServer 实例的客户端的示例可以在 Identity Server 的官方文档中找到。

对于刷新令牌,您需要配置您的 MVC 应用程序以请求offline_access范围。


推荐阅读