【问题标题】:How do I store access token in Asp NET core 3.1?如何在 Asp NET core 3.1 中存储访问令牌?
【发布时间】:2021-11-05 09:33:54
【问题描述】:

我有一个 ASP.NET Core 3.1 API,它必须连接到另一个外部 API。要向这个 API 发出请求,它需要一个 OAuth 2 访问令牌,所以我需要存储它以重复使用它,直到它用完并在需要时请求另一个。

那么存储它的最佳选择是什么?

我已经阅读了有关使用自定义类来使用静态 HttpClient 的信息,但它不适用于我必须做的事情

【问题讨论】:

    标签: asp.net-core .net-core oauth-2.0 storage asp.net-core-3.1


    【解决方案1】:

    微软为此选择了一种最佳方式。

    您可以保存在您的数据库中。

    【讨论】:

    • 我认为这可能是最好的选择,但是,我怎么知道令牌的生命周期?每次我必须发出请求并在我得到 Unauthorize 响应时更新数据时,我都应该从数据库中获取它?
    • 我试图将令牌保存在我的数据库中,但现在我遇到的问题是,发出请求的不是普通用户,是后台进程,所以我没有与之相关的 UserId请求令牌时的 AspNetUsers。
    • 在身份验证过程中检查您的生命令牌。如果刷新令牌请求过期并再次保存在数据库中。
    • 是的,我正在这样做。非常感谢你的回答,你救了我的命。
    【解决方案2】:

    如果您的项目有一个数据库,只需创建一个带有属性令牌的表和 过期时间,如果它没有将这些保存在文本文件中 (搜索有关使用 system.io 的信息)但最好使用数据库

    【讨论】:

    • 正如我向@thisisnabi 询问的那样,每次我必须发出请求并在我得到Unauthorize 响应时更新数据时,我都应该从数据库中获取它?
    【解决方案3】:

    如果您的项目连接到数据库,您可以将令牌写入数据库,或者您有其他选项,例如写入静态变量、缓存或文件。

    【讨论】:

      猜你喜欢
      • 2020-08-09
      • 2020-07-12
      • 2022-07-19
      • 2023-03-16
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-28
      相关资源
      最近更新 更多