Bu proje, Spring Boot kullanılarak geliştirilmiş temel bir JWT (JSON Web Token) tabanlı kimlik doğrulama sistemidir. Kullanıcılar giriş yaptıktan sonra token alabilir ve bu token ile korunan API endpoint'lerine erişebilir.
- Java 17
- Spring Boot
- Spring Security
- JWT (JSON Web Token)
- MySQL
- Maven
JWT tabanlı kimlik doğrulama sisteminin nasıl kurulacağını ve kullanılacağını göstermek. Bu proje:
- Kullanıcı kaydı ve girişi sağlar
- Girişte JWT token üretir
- Token ile kimlik doğrulaması yapar
Not: Rol bazlı yetkilendirme (ROLE_USER, ROLE_ADMIN gibi) bu sürümde henüz uygulanmamıştır. İlerleyen sürümlerde eklenecektir.
Proje, MySQL veritabanı ile çalışmaktadır. Aşağıdaki ayarları src/main/resources/application.properties dosyasında güncelleyin:
spring.datasource.url=jdbc:mysql://localhost:3306/jwt_example_db?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=updateMySQL'de jwt_example_db adında bir veritabanı oluşturduğunuzdan emin olun:
CREATE DATABASE jwt_example_db;src/
├── main/
│ ├── java/com/example/jwtexample/
│ │ ├── controller/ # API endpoint'leri
│ │ ├── model/ # Entity ve DTO sınıfları
│ │ ├── repository/ # JPA Repository'ler
│ │ ├── security/ # JWT filtreleri ve konfigürasyon
│ │ └── service/ # Kullanıcı işlemleri
│ └── resources/
│ └── application.properties
-
Projeyi klonlayın:
git clone https://github.com/eminyavuz/basic-jwt-example.git cd basic-jwt-example -
Gerekli veritabanını oluşturun ve
application.propertiesdosyasını düzenleyin. -
Uygulamayı çalıştırın:
mvn spring-boot:run
Uygulama http://localhost:8080 adresinde yayına alınır.
POST /api/auth/register
{
"username": "testuser",
"password": "123456"
}POST /api/auth/login
{
"username": "testuser",
"password": "123456"
}Dönen JWT token ile API'lere erişim sağlanabilir:
Authorization: Bearer <token>
GET /api/hello
→ Sadece doğrulanmış token ile erişilebilir.
MIT License