Mala Anlatır Gibi + Sana Lazım mı?
Apartmana misafir geldi. Kapıyı açmak için:
❌ Kötü Yol
"Al benim ev anahtarımı, kapıyı kendin aç"
Misafir tüm eve erişebilir, isterse kopyalayabilir
✅ OAuth Yolu
"Ben kapıcıya söyledim, o seni tanıyacak ve kapıyı açacak"
Misafir sadece izin verilen yere girebilir
Spotify'a girmek istiyorsun, "Google ile Giriş Yap" diyorsun
Google sana soruyor: "Spotify email adresini görsün mü?"
Sen "Evet" diyorsun
Google, Spotify'a bir token veriyor (şifreni değil!)
Spotify bu token ile sadece email'ini alabilir, başka bir şey yapamaz
Şifreni paylaşmadan, başka uygulamalara sınırlı erişim vermeni sağlayan bir protokol.
"Google ile giriş yap", "Facebook ile giriş yap"
→ Socialite paketi ile yapılır (OAuth 2.0 kullanır)
Başka uygulamaların senin API'ına erişmesi
→ Passport paketi ile yapılır (OAuth 2.0 sunucusu)
Kendi uygulamanın kendi API'ına erişmesi
→ OAuth 2.0 GEREKMEZ! Sanctum yeterli
Eğer şunları yapıyorsan:
→ Sanctum yeterli!
Eğer şunları yapıyorsan:
→ Passport lazım (migration gerekli)
| Özellik | Sanctum | Passport (OAuth) |
|---|---|---|
| Ne için? | Kendi uygulamaların | 3rd party uygulamalar |
| Migration | 1 tablo | 5+ tablo |
| Kurulum | Basit | Karmaşık |
| Kullanım | Kolay | Zor |
| "Google ile giriş" | Yapamaz | Yapamaz* |
| Senin durumun için | ✅ | ❌ |
* "Google ile giriş" için Socialite paketi kullanılır, Passport değil.
personal_access_tokens
├── id
├── tokenable_type
├── tokenable_id
├── name
├── token
├── abilities
└── timestamps
oauth_access_tokens
oauth_auth_codes
oauth_clients
oauth_personal_access_clients
oauth_refresh_tokens
+ personal_access_tokens
Demekki mobil uygulaması için:
OAuth 2.0 GEREKMEZ
personal_access_tokens migration'ını tenant klasörüne kopyala
php artisan tenants:migrate çalıştır
İleride "Google ile giriş" istersen, o zaman Socialite paketi eklersin (ayrı bir konu).