# shared-sheet **Repository Path**: lch99/shared-sheet ## Basic Information - **Project Name**: shared-sheet - **Description**: 共享表格 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-14 - **Last Updated**: 2023-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 需要解决的难点 ## 实时协作 websocket ## 数据同步算法 保证多个用户对表格的更改顺序是协调一致的 ## 身份验证和授权 ### JWT - **短期令牌** 将 JWT 令牌的有效期设置为相对较短的时间,以确保即使令牌未被明确撤销,其有效性也会在一段时间后自动过期。这可以降低因权限更改而导致的风险。 - **撤销列表**:维护一个撤销列表,用于存储已经取消授权的令牌的标识信息(例如,令牌的唯一ID或JTI)。在每次请求时,检查令牌是否在撤销列表中。如果在列表中,即使令牌的有效期尚未过期,也可以拒绝访问。 - **无感刷新**:使用刷新令牌(refresh token)机制,允许令牌持有者在令牌过期之前获取新的令牌。如果用户的权限发生更改,他们在获取新令牌时可以被重新授权。 ### ABAC ```json { "policies": [ { "name": "EditPolicy", "description": "允许编辑表格的策略", "target": { "resource_type": "table" }, "rules": [ { "name": "IsOwner", "condition": "user.owner_id == resource.owner_id" }, { "name": "IsEditor", "condition": "user.role == 'editor'" } ] }, { "name": "ViewPolicy", "description": "允许查看表格的策略", "target": { "resource_type": "table" }, "rules": [ { "name": "IsOwner", "condition": "user.owner_id == resource.owner_id" }, { "name": "IsViewer", "condition": "user.role == 'viewer'" } ] } ] } ``` ## 版本控制