视频字幕
在设计事业部级别的接口鉴权系统时,我们需要满足两个关键需求:一是用户30分钟不操作就需要重新登录,二是禁用用户能够立即失去API访问权限。这些需求带来了会话状态管理、实时权限检查以及系统性能与扩展性方面的挑战。我们的鉴权流程包括:用户登录请求、服务器验证身份并返回Session ID,以及用户使用Session ID进行后续API访问。
我们选择基于Session的鉴权方案,这种方案在服务器端维护会话状态,非常适合实现我们的需求。在Session存储中,我们至少需要保存用户ID、登录时间、最后活动时间、业务单元ID和权限信息。推荐使用Redis作为Session存储,它提供高性能和可扩展性。API服务器在处理每个请求时,都会查询和更新Redis中的Session信息。这种方案的主要优势在于服务端可以完全控制会话状态,易于实现用户禁用后的立即失效,并且提供简单直接的超时机制来满足30分钟不操作就需要重新登录的需求。