c# - 如何在与 Web API 通信的 ASP.NET Core MVC 应用程序中使用自定义身份验证/授权?
问题描述
我想在 MVC/Razor Page 应用程序中使用身份验证/授权,该应用程序使用后端 API 来处理数据和身份验证令牌。API 发出访问和刷新 JWT 以进行有效登录,到目前为止我所做的是调用 API 并使用 HttpClient 获取这些令牌,然后将它们存储在 cookie 中。
但是,我必须手动检查令牌并在访问令牌过期时刷新它,并在用户注销时删除 cookie。我想知道是否有办法通过利用 ASP.NET Core 的身份验证和授权功能(例如使用 [Authorize] 将某些控制器限制为特定用户)以更合适的方法使用它。
解决方案
Checkout Identity Server,它既是身份验证(使用 OpenIdConnect),也是授权服务器(使用 OAuth)。
然后在您的 WebApp(MVC/Razor 和 API 客户端)中简单地使用它的集成。如何将 ASP.NET MVC 设置为 IdentityServer 实例的客户端的示例可以在 Identity Server 的官方文档中找到。
对于刷新令牌,您需要配置您的 MVC 应用程序以请求offline_access
范围。
推荐阅读
- tsql - sql代码比较系列中的前一行
- vba - 在 PST 存储中隐藏搜索文件夹
- r - 将单元格内容分成R中的新行
- c - strcasecmp 算法有缺陷吗?
- scala - 如何基于 Spark/Scala 中所有列的过滤条件创建 DF
- r - 使用 .SD 对 data.table 中的列子集进行累积总和
- java - 复杂的 sql 查询应该发生在后端还是在 android mobile 中安全
- mongodb - Mongo Express 服务器监听 http://0.0.0.0:8081
- javascript - react中的分页类组件
- cassandra - 连接错误: ('无法连接到任何服务器', {'127.0.0.1': error(111, "尝试连接到 [('127.0.0.1