繁体   English   中英

是否应实施服务器端超时?

[英]Should server side timeout be implemented?

我正在构建一个Java + angularjs应用程序。 我已经在客户端实现了会话超时,如果用户在30分钟内没有任何活动,它将向服务器发送一个使会话令牌过期的请求。

超时是否也应该在服务器端单独存在,即,如果与服务器的连接在5个小时或一天之内没有关闭,则在服务器端自动使会话令牌失效并通过发送401注销用户吗?

我想到的另一种情况是,如果我将API与其他应用程序分开使用,则我的API应该永不超时吗? 还是应该有一个会话持续时间,因为我是在服务器端管理会话令牌的。

恕我直言,使用TTL将会话令牌保存在服务器中(有效时间,如果一段时间内没有任何活动,基本上令牌将从数据存储中删除)是最好的方法。 许多数据存储区都有实现此功能的机制,并且它会在TTL过期时自动删除会话令牌; 对于这种情况,我建议使用Redis 必须在服务器端保持会话安全。

如果您要为不同的应用程序提供API,则使用相同的机制是有意义的。 您可以登录另一个应用程序,只要该用户登录到您的系统并且已经通过您的系统授予了另一个应用程序的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM