logo
0
0
Login
Forkfromjun3.work/language/golang-1.25, ahead:main1 commits
feat: 实现用户注册和登录功能,添加 JWT 认证和 Redis 支持

User service (Go) — 分层架构示例

功能:用户注册/登录与双 token(access + refresh)认证,支持手机号+验证码、手机号+密码、账号+密码登录。

快速开始

  1. 填写配置

    • 编辑 config/config.yaml 或通过环境变量设置数据库/redis/jwt 配置。
  2. 运行数据库迁移(使用 goose)

go install github.com/pressly/goose/v3/cmd/goose@latest export DATABASE_URL="postgres://user:pass@localhost:5432/yourdb?sslmode=disable" goose -dir db/migrations postgres "$DATABASE_URL" up
  1. 生成 sqlc 代码(可选)
go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest sqlc generate
  1. 运行服务
go run ./cmd/server

说明

  • 配置:使用 viperconfig/config.yaml 或环境变量读取配置。
  • 日志:使用标准库 slog(封装在 internal/util/logger)。
  • 数据库:Postgres(使用 pgxpool),迁移使用 pressly/goose
  • sqlc:已包含 sqlc.yamldb/sqlc 查询与 schema,运行 sqlc generate 可在 internal/db 生成类型安全的查询代码。
  • Redis:用于存储短信验证码、refresh token(用于单点登出/撤销)。

About

云原生 golang 开发环境

Language
Go100%