This project is a user authentication microservice built with Go (Golang) using gRPC and Protocol Buffers. It demonstrates secure user registration and login, JWT-based authentication, password hashing with bcrypt, and rate limiting middleware.
- gRPC service definitions for user registration and login
- JWT token generation and validation
- Password hashing with bcrypt
- Rate limiting middleware
- Example Go client
- Simple HTML web client for testing
- Go (Golang)
- gRPC
- Protocol Buffers
- JWT (github.com/golang-jwt/jwt/v5)
- bcrypt (golang.org/x/crypto/bcrypt)
- Rate Limiting (golang.org/x/time/rate)
proto/ # Protocol Buffers (.proto) files
de server/ # Go gRPC server implementation
client/ # Go client example
web/ # Simple HTML client
- Go (v1.18+ recommended)
- protoc (Protocol Buffers compiler)
- protoc-gen-go and protoc-gen-go-grpc
go mod tidy
protoc --go_out=. --go-grpc_out=. proto/user.proto
go run server/main.go
go run client/main.go
Open web/index.html in your browser and follow the instructions.
- Built with Go (Golang)
- gRPC, Protocol Buffers, JWT, bcrypt, and rate limiting libraries
Author: [Imaad]
This project is for educational/demo purposes. Contributions welcome!