Nancy.Authentication.Token - Token以奇怪的间隔到期?

时间:2014-10-25 08:49:54

标签: c# asp.net authentication nancy

我有一个奇怪的问题(或者只是需要更好地理解它;-))与Nancy.Authentication.Token。

我当前的应用要求令牌有效期为30天。我在我的引导程序中有这个:

    protected override void ConfigureApplicationContainer(TinyIoCContainer container)
    {
        base.ConfigureApplicationContainer(container);
        container.Register<ITokenizer>(new Tokenizer(cfg => cfg.KeyExpiration(() => TimeSpan.FromDays(60)).TokenExpiration(() => TimeSpan.FromDays(30))));
    }

    protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context)
    {
        base.RequestStartup(container, pipelines, context);
        TokenAuthentication.Enable(pipelines, new TokenAuthenticationConfiguration(container.Resolve<ITokenizer>()));
    }

然而,在看起来几乎是随机的间隔时,令牌认证失败并且用户需要再次登录并获得分配的新令牌。有时这是4天后,有时是10天后,但从来没有令牌持续整整30天。

您对此问题有经验吗?我尝试了几种不同的配置ITokenizer的方法,但似乎没有任何方法可以永久工作。

1 个答案:

答案 0 :(得分:4)

这是我的第一篇文章,所以希望我遵守这些规则。

我刚开始使用NancyFx并开始自己实现令牌身份验证。我正在审核源代码以了解其工作原理,并在我的研究中发现了您的帖子。

据我所知,默认的Tokenizer会在创建时将您的用户代理加密到令牌中。因此,如果您的用户代理更改,则令牌将变为无效。将当前用户代理从上下文与令牌的存储用户代理进行比较。

我会调查您的用户代理可能会发生变化的可能性。