UNPKG

@opentiny/tiny-toolkit-pro

Version:

TinyPro Vue:开箱即用、前后端分离的 Vue 后台管理模板

94 lines (72 loc) 2.72 kB
# TinyPro 后端设计架构 本文档旨在捋清 TinyPro 后端设计架构。 ## 表设计 ![](./images/data-table-design.png) ## 专用术语 - 公开接口: 一个不需要Token的接口, 一般是登录接口. - 非公开接口: 一个需要Token的接口, 当Token过期时必须返回401响应码. 错误报文格式请参考[异常格式](#异常格式) - 保护接口: 一个需要相应权限的接口, 会从Token中读取用户Email, 如果Token过期则**必须**返回401响应码,如果用户**没有**相应的权限,**必须**返回一个403响应码,错误报文格式请参考[异常格式](#异常格式) ## 请求示意图 ### 公开接口请求示意图 ```mermaid sequenceDiagram User->>+Server: 发送请求 Server->>Server: 是公开接口 Server->>Server: 处理请求 Server-->>-User: 返回响应 ``` ### 非公开接口请求示意图 #### 正常响应 如果用户Token合法且未过期则不会返回异常 ```mermaid sequenceDiagram User->>+Server: 发送请求 Server->>Server: 不是公开接口 Server->>+AuthGuard: 用户Token AuthGuard->>AuthGuard: Token合法 AuthGuard->>AuthGuard: Token在Redis中未过期 AuthGuard->>-Server: 放行 Server->>Server: 处理请求 Server-->>-User: 返回响应 ``` #### 异常响应 如果Token过期或异常则会返回异常响应 ```mermaid sequenceDiagram User->>+Server: 发送请求 Server->>Server: 不是公开接口 Server->>+AuthGuard: 用户Token AuthGuard->>AuthGuard: Token不合法 AuthGuard-->> -User: 401 Token不合法 User->>+Server: 发送请求 Server->>Server: 不是公开接口 Server->>+AuthGuard: 用户Token AuthGuard->>AuthGuard: Token合法 AuthGuard->>AuthGuard: Token过期 AuthGuard-->> -User: 401 登陆过期 ``` ### 保护接口 #### 正常响应 ```mermaid sequenceDiagram User->>+Server: 发送请求 Server->>Server: 不是公开接口 Server->>AuthGuard: Token AuthGuard-->>Server: Token合法且未过期 Server->>PermissionGuard: 是保护接口 PermissionGuard->>PermissionGuard: 未设定权限或拥有相应权限 PermissionGuard -->> Server: 放行 Server ->> Server: 逻辑处理 Server ->> -User: 响应 ``` #### 异常响应 ```mermaid sequenceDiagram User->>+Server: 发送请求 Server->>Server: 不是公开接口 Server->>AuthGuard: Token AuthGuard-->>Server: Token合法且未过期 Server->>PermissionGuard: 是保护接口 PermissionGuard->>PermissionGuard: 未拥有权限 PermissionGuard-->>User: 权限不足 ```