2025-05-25 18:05:38 +08:00
|
|
|
# 用户中心
|
|
|
|
|
|
|
|
管理用户认证和鉴权
|
|
|
|
|
|
|
|
## 需求
|
|
|
|
|
|
|
|
认证: 你是谁
|
|
|
|
+ Basic Auth: 通过用户名密码来认证
|
|
|
|
+ 访问令牌: 最灵活的 框架
|
|
|
|
|
|
|
|
鉴权: 你能干什么(范围)
|
|
|
|
|
2025-05-31 10:50:37 +08:00
|
|
|
|
|
|
|
## 概要设计
|
|
|
|
|
|
|
|
针对问题(需求),给出一种解决方案(解题)
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
## 详细设计
|
|
|
|
|
|
|
|
定义业务
|
|
|
|
|
|
|
|
|
2025-06-13 19:51:08 +08:00
|
|
|
## 交付
|
|
|
|
|
|
|
|
1. API(可以把 其他API补充完成)
|
|
|
|
2. 权限验证中间件(认证和鉴权)
|
|
|
|
|
|
|
|
```go
|
|
|
|
ws.Route(ws.GET("").To(h.QueryUser).
|
|
|
|
Doc("用户列表查询").
|
|
|
|
Metadata(restfulspec.KeyOpenAPITags, tags).
|
|
|
|
// 这个开关怎么生效
|
|
|
|
// 中间件需求读取接口的描述信息,来决定是否需要认证
|
|
|
|
Metadata(permission.Auth(true)).
|
|
|
|
Metadata(permission.Permission(true)).
|
|
|
|
Metadata(permission.Resource("user")).
|
|
|
|
Metadata(permission.Action("list")).
|
|
|
|
Param(restful.QueryParameter("page_size", "分页大小").DataType("integer")).
|
|
|
|
Param(restful.QueryParameter("page_number", "页码").DataType("integer")).
|
|
|
|
Writes(Set{}).
|
|
|
|
Returns(200, "OK", Set{}))
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-05-31 10:50:37 +08:00
|
|
|
|
|
|
|
|
|
|
|
|