Gin + GORM + MySQLを使ったシンプルなユーザー認証システムです。 JWTを使った認証機能を提供し、安全にユーザー管理を行えます。
- Golang 1.24.1
- Gin (Webフレームワーク)
- GORM (ORM)
- MySQL / SQLite (データベース)
- JWT (認証)
.envを以下のようにしてください
DB_USER=username
DB_PASSWORD=password
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=yourdatabase
.envはなくても動作します。
.envを以下を追加するとSECRET_KEYを設定できますし、なければ自動作成されます。
SECRET_KEY=your_secret_key
JWTのSECRET_KEYをランダムに生成するスクリプトがあります。
cd tools
go run generate_secret.go
SECRET_KEY=生成されたキー
go run main.go database.go user.go
/signup ユーザー登録ページにアクセスできます
/signup サインインページにアクセスできます
/ トップページ
リクエスト
POST api/accounts/register
{
"username": "testuser",
"password": "password123"
}
レスポンス
{
"message":"user created"
}
リクエスト
POST api/accounts/login
{
"username": "testuser",
"password": "password123"
}
レスポンス { "token": "token..." }
GET api/accounts/profile (JWTトークンが必要)
ヘッダー
Authorization: Bearer <your-jwt-token>
レスポンス
{"ID":1,"Username":"testuser"}