REST API + JWT 鉴权
REST API + JWT 鉴权
Section titled “REST API + JWT 鉴权”本示例演示如何使用 go-zero 构建带 JWT 认证的安全 REST API。
API 定义
Section titled “API 定义”type LoginReq { Username string `json:"username"` Password string `json:"password"`}
type LoginResp { Token string `json:"token"`}
type UserInfoReq {}type UserInfoResp { Id int64 `json:"id"` Name string `json:"name"`}
service user-api { @handler Login post /user/login (LoginReq) returns (LoginResp)
@jwt Auth @handler UserInfo get /user/info (UserInfoReq) returns (UserInfoResp)}goctl api go -api user.api -dir .实现登录逻辑
Section titled “实现登录逻辑”func (l *LoginLogic) Login(req *types.LoginReq) (resp *types.LoginResp, err error) { // 1. 验证用户名密码 // 2. 生成 JWT Token token, err := generateToken(l.svcCtx.Config.Auth.Secret, req.Username) if err != nil { return nil, err } return &types.LoginResp{Token: token}, nil}Name: user-apiHost: 0.0.0.0Port: 8888Auth: AccessSecret: your-secret-key AccessExpire: 86400