Laravel Sanctum ve JWT (JSON Web Tokens)'nin Kullanım Alanları, Kurulumları ve Aralarındaki Farklar
Laravel Sanctum Nedir ve Nasıl Kullanılır?
Laravel Sanctum, Laravel uygulamalarında API yetkilendirme işlemlerini sağlamak için kullanılan bir pakettir. Kullanıcıların token tabanlı kimlik doğrulaması yapmalarını sağlar. İşte Laravel Sanctum'i kullanarak adımlar:
1. Laravel Projesi Oluşturma:
Öncelikle bir Laravel projesi oluşturmanız gerekmektedir. Composer kullanarak yeni bir proje oluşturabilirsiniz:
composer create-project --prefer-dist laravel/laravel sanctum_demo
2. Sanctum Kurulumu:
Laravel Sanctum'i projenize eklemek için Composer kullanabilirsiniz:
composer require laravel/sanctum
3. Sanctum Yapılandırması:
Sanctum paketini projenize ekledikten sonra, yapılandırma dosyasını yayınlamanız gerekir. Bunun için terminalde aşağıdaki komutu çalıştırın:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
Bu komut, yapılandırma dosyasını projenize kopyalayacak ve config/sanctum.php
yolunda oluşturacaktır.
4. Migration'lar:
Sanctum'un kullanması için gerekli olan tabloları veritabanınıza eklemeniz gerekmektedir. Bu adım için aşağıdaki migration'ı çalıştırabilirsiniz:
php artisan migrate
5. Middleware Ayarları:
Sanctum'u kullanmak için api
middleware'ini routes/api.php
dosyasına eklemelisiniz:
use Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful;
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
6. Token Oluşturma:
Token oluşturmak için Sanctum
kullanıcı modelinizi bir örnek oluşturarak kullanabilirsiniz:
use App\Models\User;
use Illuminate\Support\Facades\Hash;
$user = User::create([
'name' => 'Test User',
'email' => '[email protected]',
'password' => Hash::make('password'),
]);
$token = $user->createToken('token-name')->plainTextToken;
Bu kod, kullanıcı için bir token oluşturur ve bu token'i döndürür.
7. Token Kullanımı:
Oluşturulan token ile güvendeki rotaları çağırabilirsiniz:
curl -X GET http://your-app.test/api/user \ -H "Authorization: Bearer $TOKEN"
'$TOKEN
'ı oluşturduğunuz token ile değiştirmelisiniz.
Bu adımları takip ederek Laravel Sanctum'u kullanmaya başlayabilirsiniz.
JWT Nedir ve Nasıl Kullanılır?
JSON Web Tokens (JWT), token tabanlı kimlik doğrulaması sağlamak için kullanılan bir standarttır. Laravel'de JWT kullanmak için tymon/jwt-auth
gibi üçüncü taraf paketler kullanılabilir. Bu paket, JWT'leri oluşturmayı, doğrulamayı ve işlemeyi kolaylaştırır. İşte JWT-Auth paketini Laravel'de kullanmanın temel adımları:
1. Paketin Yüklenmesi:
Composer kullanarak tymon/jwt-auth
paketini projeye ekleyin:
composer require tymon/jwt-auth
2. Servis Sağlayıcısının Eklenmesi:
config/app.php
dosyasında, servis sağlayıcısını ekleyin:
'providers' => [
// ...
Tymon\JWTAuth\Providers\LaravelServiceProvider::class,
],
3. JWT Servisini Yapılandırma:
Laravel'deki JWT paketini yapılandırmak için, terminalde aşağıdaki komutu çalıştırın:
php artisan vendor:publish --provider="Tymon\JWTAuth\Providers\LaravelServiceProvider"
Bu komut, config/jwt.php
dosyasını projenize kopyalayacaktır. Burada, token ömrü, algoritma ve diğer ayarları yapılandırabilirsiniz.
4. Kullanıcı Modelini Güncelleme:
Kullanıcı modelinizi (App\Models\User
) JWTAuth ile uyumlu hale getirmek için, Tymon\JWTAuth\Contracts\JWTSubject
arabirimini uygulayın ve gerekli yöntemleri tanımlayın:
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Tymon\JWTAuth\Contracts\JWTSubject;
class User extends Authenticatable implements JWTSubject
{
// ...
public function getJWTIdentifier()
{
return $this->getKey();
}
public function getJWTCustomClaims()
{
return [];
}
}
5. JWT'lerin Oluşturulması ve Doğrulanması:
JWT'leri oluşturmak ve doğrulamak için, JWTAuth
facade'ini kullanabilirsiniz. Örneğin, kullanıcı giriş yaptığında bir token oluşturabilir ve bunu kullanarak yetkilendirme yapabilirsiniz.
use Tymon\JWTAuth\Facades\JWTAuth;
$token = JWTAuth::attempt(['email' => $email, 'password' => $password]);
if (!$token) {
return response()->json(['error' => 'Unauthorized'], 401);
}
return response()->json(compact('token'));
Token'ı kullanarak yetkilendirme yapmak için, jwt.auth
middleware'ini rotalarınıza ekleyebilirsiniz:
Route::middleware('jwt.auth')->get('user', function(Request $request) {
return auth()->user();
});
JWT'leri kullanarak kimlik doğrulama yapmak oldukça esnektir ve birçok özelliği destekler. Ancak, güvenlik konusunda dikkatli olunmalıdır. Örneğin, token'ın güvenliği sağlanmalı, token'ın süresi sınırlanmalı ve yetkilendirme doğru bir şekilde yapılandırılmalıdır.
JWT (JSON Web Tokens) ile Senstum Arasındaki Farklar Nelerdir?
JWT (JSON Web Tokens) ve Laravel Sanctum (önceden Laravel Airlock olarak da bilinir), her ikisi de token tabanlı kimlik doğrulaması sağlayan araçlardır, ancak farklı yaklaşımları ve kullanım alanları vardır. İşte JWT ve Laravel Sanctum arasındaki temel farklar:
- JWT (JSON Web Tokens):
- JWT, bir açık standarttır ve token tabanlı kimlik doğrulaması sağlamak için kullanılır.
- JWT'ler, JSON formatında veriyi taşıyan ve bu verinin doğruluğunu doğrulayan token'lar olarak kullanılır.
- JWT'ler, token'ın içerdiği bilgilerin şifrelenmesi nedeniyle veri depolama ve işleme konusunda daha bağımsızdır.
- JWT, genellikle bağımsız bir kimlik doğrulama hizmeti olarak kullanılır ve genellikle oturum yönetimi ve kimlik doğrulaması gibi çeşitli platformlar ve hizmetler arasında kullanılabilir.
- JWT, Laravel dahil olmak üzere çeşitli platformlarda kullanılabilir. Laravel'de JWT kullanmak için
tymon/jwt-auth
gibi üçüncü taraf paketler bulunmaktadır.
- Laravel Sanctum:
- Laravel Sanctum, Laravel'in özel bir paketidir ve Laravel uygulamalarında API yetkilendirme işlemlerini sağlamak için kullanılır.
- Sanctum, API'larınız için oturum tabanlı kimlik doğrulaması sağlar. Kullanıcılar, token'ları API rotalarına erişmek için oluşturur ve bu token'lar, Sanctum tarafından sağlanan middleware ile doğrulanır.
- Sanctum, Laravel'in Oturum ve CSRF korumasını API'larınıza uyarlar ve kullanıcı kimlik doğrulaması için oturumları kullanır.
- Sanctum, Laravel'in güçlü yetkilendirme ve kimlik doğrulama özelliklerinden yararlanır ve API tabanlı projeler için uygun bir seçenektir.
- Sanctum, SPA'lar (Single Page Applications) veya mobil uygulamalar gibi istemci tarafı uygulamalarıyla entegrasyonu kolaylaştıran özelliklere sahiptir.
Kısacası, JWT, genel olarak token tabanlı kimlik doğrulaması için bir standart sunarken, Laravel Sanctum, özellikle Laravel API'ları için oturum tabanlı kimlik doğrulaması sağlamak için Laravel'in özel bir paketidir. Hangisinin kullanılacağı, projenin gereksinimlerine ve kimlik doğrulama yöntemi tercihlerine bağlı olacaktır.
- Laravel
- Web Yazılım
- Yazılım
Tepkini Göster
- 1
- 0
- 0
- 0
- 1
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
- 0
Yorumlar
Sende Yorumunu Ekle