我有一个奇怪的问题(或者只是需要更好地理解它;-))与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的方法,但似乎没有任何方法可以永久工作。
答案 0 :(得分:4)
这是我的第一篇文章,所以希望我遵守这些规则。
我刚开始使用NancyFx并开始自己实现令牌身份验证。我正在审核源代码以了解其工作原理,并在我的研究中发现了您的帖子。
据我所知,默认的Tokenizer会在创建时将您的用户代理加密到令牌中。因此,如果您的用户代理更改,则令牌将变为无效。将当前用户代理从上下文与令牌的存储用户代理进行比较。
我会调查您的用户代理可能会发生变化的可能性。