gpt4 book ai didi

c# - 从代码中刷新客户端的身份 token

转载 作者:行者123 更新时间:2023-12-02 08:06:50 26 4
gpt4 key购买 nike

我使用带有 asp.net mvc 后端的fine-uploader将文件直接上传到azure blob存储。 asp.net-server 用作 azure-signature-endpoint(sas)。这一切都通过 identityserver3 进行保护,但问题来了:identity_tokens 生命周期 设置为 5 分钟(默认)。我希望 SAS 端点仅被称为授权的。因此用户只能访问自己的数据。但当我上传运行 5 分钟后,它就中断了。当然,因为它未经授权,并且它从身份服务器返回登录页面(当然,精细 uploader 无法处理)。

解决这个问题很容易,可以将 token 的生命周期设置为更高的值(但这并不可靠,因为上传可能需要数小时或数天),或者禁用生命周期(是的,可以。但我想生命周期有存在的理由)。

所以我的两个想法是:

  1. 仅授权用户一次(当他开始下载时)
  2. 或者在每次生成签名时通过代码刷新 token 。

第一种方法

我可以设置一个 bool 值,例如用户已授权,如果设置了此 bool 值,则跳过授权并返回签名,或者我如何实现此目的

第二种方法

我该怎么做?

最佳答案

不要使用 id token 进行 API 访问,而是使用访问 token 。访问 token 用于资源(API),而 id_tokens 纯粹用于身份验证。 id_token 仅用于为 RP 提供了解用户是谁的方法 - 因此不需要很长的时间跨度。它仅用于转换为用户 session (cookie/主体)。

使用访问 token ,您可以通过多种方法在客户端保留有效 token ;通过使用客户端凭据流获取新凭据或使用刷新 token 方法。

我相信 IdentityServer 的示例存储库中都有这两个示例。

Samples repo link

关于c# - 从代码中刷新客户端的身份 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39593468/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com