官方文档Golang 环境安装 golangGo Module设置 goctl安装 goctlprotoc & protoc-gen-go安装
etcd,redis,mysql 等开发工具可以通过Docker 快速搭建;可参考 gonivinck
api语法介绍
goctl api go -api userlogin.api -dir . go mod tidy
生成文件目录
4、编辑配置文件 userlogin/etc/userlogin-api.yaml
添加config声明 userlogin/internal/config/config.go 其中Salt 用来密码加密存储,Auth 用于 jwt鉴权
添加用户表 userlogin/model/user.sql
通过命令生成model文件 model 指令 goctl model mysql ddl -src="userlogin/model/user.sql" -dir="userlogin/model/" -c
-c 参数代表 在model层使用缓存 需要配置对应的 CacheRedis 生成文件如下:
可以看到 goctl 已经生成了 UserModel interface 并实现了基本的增删改查询代码;
image.png
编辑 userlogin/internal/svc/servicecontext.go 添加 logic所依赖的 UserModel
1、注册逻辑代码
2、添加 JWT 工具 userlogin/common/jwtx/jwt.go
3、用户登录逻辑 userlogin/internal/logic/loginlogic.go
7、启动测试
注册测试
登录测试
上面已经完成了登录注册功能;并且登录返回了Token;接下来就用一下Token
编写 api 文件 在 service 上方声明使用jwt鉴权 修改 userlogin/userlogin.api 重新执行 goctl api 命令
可以看到路由文件中 userlogin/internal/handler/routes.go 新增的路由中通 WithJwt 声明了使用jwt鉴权
userlogin/internal/logic/userinfologic.go