【问题标题】:Proper way to handle authentication to external API from Nestjs API从 Nestjs API 处理对外部 API 的身份验证的正确方法
【发布时间】:2020-06-25 21:55:47
【问题描述】:

我有一个公共的 NestJs API,所以不需要身份验证,但是我需要从这个 api 向外部 API 发出请求,这个 api 有一个具有基本身份验证(用户和通行证)的身份验证端点并返回一个不记名令牌。处理这种情况的正确方法是什么?也许是一个全局拦截器来拦截所有请求并验证令牌状态,如果已过期,则发出另一个身份验证请求来更新令牌并继续......

例如: 获取产品请求 => 我的 API => 验证令牌(有效)=> 继续外部 API =>(过期)=> 验证请求获取令牌(外部 API)=> 继续先前的请求(外部 API)。

我还想知道存储访问令牌的良好做法。

【问题讨论】:

    标签: api axios interceptor nestjs


    【解决方案1】:

    是的,您应该使用拦截器。关于存储访问令牌(如果每次应用程序启动都需要一次),您可以将其保存到环境或某个缓存中。 查看我们的解决方案: https://github.com/valueadd-poland/pimp-my-pr/blob/master/libs/server/shared/core/src/lib/github/interceptors/github-auth.interceptor.ts

    【讨论】:

    • 这是一个很好的例子,但我需要一些机制来刷新令牌,因为会话过期时间和始终使用相同的凭据。
    • 您可以在拦截器中捕获请求异常并触发令牌刷新操作。
    • 为什么不使用 redis 呢?
    猜你喜欢
    • 2014-04-15
    • 2017-03-05
    • 2016-01-17
    • 1970-01-01
    • 1970-01-01
    • 2017-09-28
    • 1970-01-01
    • 2020-07-10
    • 2017-01-04
    相关资源
    最近更新 更多