【问题标题】:Initial API token before user authentication - .NET core Web API用户身份验证前的初始 API 令牌 - .NET 核心 Web API
【发布时间】:2020-12-22 20:31:18
【问题描述】:

我有一个 Web 应用程序,我必须在用户登录前后调用一些 API。我也想在登录前保护通话。比如注册时的 SaveUserAPI、ForgotPasswordAPI。

我已经使用JWT的token机制在登录后生成token,在后续调用中这个token将用于API认证。

我应该如何进行用户未登录时调用的 SaveUserAPI、ForgotPasswordAPI 调用?您能否提供一些有价值的建议来解决这个问题?

【问题讨论】:

  • 使用 HTTPS,AntiFrogeryToken。
  • 谢谢@MuhammadHannan。我不是在为移动和网络寻找解决方案。所有 API 调用都应经过身份验证。

标签: .net asp.net-web-api .net-core jwt


【解决方案1】:

如果您使用 OAuth2,您可以为您的 API 生成两种身份验证机制。

  1. 客户端凭据流:使用不记名令牌的机器对机器身份验证
  2. 隐式或授权代码流:这将用于需要用户身份的 API

然后您可以在您的 API 上使用 Policy/Scope 来锁定注册、忘记密码类型的 API 以使用客户端凭据,而其他 API 可以使用隐式/身份验证代码流。

我在 SPA 和移动应用程序使用的后端 API 中做了同样的事情。

我的所有 API 都不允许匿名访问。这意味着应用需要授权和管理两个令牌,一个用于非用户端点,另一个用于用户关联的 api。

【讨论】:

  • 谢谢。我正在寻找类似的方法。不应匿名访问任何 API。希望客户端凭据将用于外部调用和登录后所有调用的基于用户的令牌。在asp.net core的请求管道中,你是怎么配置的?
  • 我为非用户 API 定义了一个必需的范围,并通过管道上的策略应用它
猜你喜欢
  • 2020-07-20
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2017-05-23
相关资源
最近更新 更多