首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除azure函数中使用的过期或无效openiddict令牌

删除azure函数中使用的过期或无效openiddict令牌
EN

Stack Overflow用户
提问于 2022-11-04 11:29:07
回答 1查看 46关注 0票数 0

我正在研究一个天蓝色的功能,它是一个系统的一部分。系统的认证/授权由OpenIdDict库控制。在生产中使用我们的系统一段时间后,OpenIddictTokens表中有数以百万计的无效和过期令牌,我认为这会导致系统中的一些调用减速。

现在,我正在处理一个时间触发的azure函数,该函数的目的是删除(清除)分别保存在OpenIddictTokens表和OpenIddictAuthorizations表中的所有无用令牌和授权。

我开始研究开胸文档和api,但到目前为止还没有找到与实现相关的需求的确切匹配。

有人能帮忙吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-09 10:04:31

在查看了文档并对代码进行了实验之后,我找到了这个方法,以及如何在我的azure函数应用程序中使用这个方法。

首先,在启动时添加openiddict的依赖项:

代码语言:javascript
复制
        builder.Services.AddOpenIddict()
        // Register the OpenIddict core services.
        .AddCore(options =>
        {
            // Register the Entity Framework stores and models.
            options.UseEntityFrameworkCore()
                .UseDbContext<ApplicationDbContext>();
        });

然后以IOpenIddictAuthorizationManagerIOpenIddictTokenManager作为依赖项创建各自的函数,并为这两个函数调用PruneAsync方法。

代码语言:javascript
复制
    private readonly IOpenIddictAuthorizationManager _openIddictAuthorizationManager;
    private readonly IOpenIddictTokenManager _openIddictTokenManager;

    public PruneTokenFunction(IOpenIddictAuthorizationManager openIddictAuthorizationManager, IOpenIddictTokenManager openIddictTokenManager)
    {
        _openIddictAuthorizationManager = openIddictAuthorizationManager;
        _openIddictTokenManager = openIddictTokenManager;
    }

    [FunctionName("prunetoken")]
    public async Task Run([TimerTrigger("0 */5 * * * ")] TimerInfo timerInfo)
    {
        await _openIddictTokenManager.PruneAsync(DateTimeOffset.Now.AddDays(-1));
        await _openIddictAuthorizationManager.PruneAsync(DateTimeOffset.Now.AddDays(-1));
    }

以下是与同一查询相关的问题,这可能对许多人都有帮助。实现自动过期令牌刷新

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74316330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档