我有一个由多个客户端使用的IdentityServer4实现。当前,IdentityServer创建一个会话cookie,该cookie将在浏览器会话的整个过程中保持有效。我想添加“记住我”功能,以便用户会话在浏览器重新启动后将继续存在。
IdentityServer和ASP.Net Identity都具有有关如何执行此操作的清晰示例。问题在于选择最佳到期类型(绝对与滑动)和最佳到期时间,因为每个客户端具有不同的空闲和绝对超时要求。
例如,客户A和B要求绝对有效期为14天;客户C需要30分钟的空闲超时和14天的绝对到期时间。
我正在尝试找出设置Identity Server cookie到期和客户端cookie到期的最佳方法。
我目前的想法是做这样的事情:
优点:
缺点:
我意识到大多数人的要求略有不同。但是我想知道在这种情况下有什么共同点。
提议的解决方案是否存在问题?
您是否会在IdentityServer中使用滑动cookie,因此假设一致使用可能会更宽松。然后强制客户端设置所有到期时间?
是否可以让所有客户端使用会话cookie,但仍然具有不同的空闲超时,以使它们无法在浏览器重新启动后无法幸免并始终返回到IdentityServer?