【发布时间】:2017-08-20 01:54:46
【问题描述】:
我正在构建一个 .net core web api。
前言 - 我已经按照 https://stormpath.com/blog/token-authentication-asp-net-core 和 https://dev.to/samueleresca/developing-token-authentication-using-aspnet-core 实现了令牌身份验证。我还在 github 和 SO 上阅读了一些问题。
这也派上了用场https://goblincoding.com/2016/07/24/asp-net-core-policy-based-authorisation-using-json-web-tokens/。
在实施完这一切之后,我觉得我错过了一些东西。
我创建了一个简单的 Angular 应用程序,它位于 Web 客户端中。当我进行身份验证时,客户端会收到一个令牌。我现在将其存储在会话中(仍在开发中,因此将解决有关稍后存储位置的安全问题)。
我不确定这 (JWT (JSON Web Token) automatic prolongation of expiration) 是否有用,因为据我所知,我还没有实现刷新令牌。
我注意到,当我调用注销,然后再次登录时,客户端会收到一个新令牌 - 正如预期的那样。但是,如果令牌过期时间已过(我将其设置为 1 分钟以进行测试)然后刷新页面,则令牌在我的应用程序中似乎保持不变。 即好像令牌永不过期?!
我本来希望客户端返回 401 Unauthorized 错误,然后我可以强制用户重新进行身份验证。
这不是应该如何工作的吗? 在后台是否有一些默认的自动刷新令牌魔术(我没有在教程中明确设置任何刷新令牌的概念)?还是我错过了令牌身份验证的概念?
另外 - 如果这是一个永久刷新的令牌,如果令牌被泄露,我是否应该担心安全性?
感谢您的帮助
【问题讨论】:
标签: authentication token jwt .net-core