public function callback($provider){
try {
$socialUser = Socialite::driver($provider)->user();
} catch (\Throwable $th) {
return redirect(route('login'));
}
// Kullanıcının e-posta adresiyle veritabanında eşleşen bir kullanıcı var mı.?
$user = User::where('email', $socialUser->getEmail())->first();
$name = $socialUser->getNickname() ?? $socialUser->getName();
google ,facebook ve twitter istiyorum . Şimdilik sadece google ile deniyorum.
User tablomda name alanım boş geçilemez zorunlu alan bu yüzden
$name = $socialUser->getNickname() ?? $socialUser->getName();
bu kodla hangisi varsa onu alıyorum her ikisininde boş gelme olasılığı varmı ? hani en azından Google yada facebookda getNickname ve getName alanlarının ikisi birden boş bırakılabiliniyormu ? her ikisininde boşolma olasılıgında hata vericektir .
Aynı şekilde user tabloma birde username alanı ekledim buda zorunlu bir alan $name
için yaptığımı
$username = $socialUser->getNickname() ?? $socialUser->getName();
şeklinde username içinde yapmak istiyorum ama her ikisininde boş olma ihtimali varmıdır bunu yani boş ihtimalini kontrol etmelimiyim ?
birde bu elde ettiğim hem $name hemde $username için slug kullanmama gerek yoktur heralde yada varmıdır ?
İkinci sorum :
Username alanımla ilgili uygulamamda username alanı boş geçilemez .Normal kayıt formunda
yeni kullanıcı kaydında
'username' => ['required', 'string','max:15', 'unique:users'],
kullanıcı update formunda
'username' => ['required', 'string','max:15', Rule::unique('users')->ignore($user->id)],
ile benzersizliğini kontrol edebiliyorum .
Socialite ilede aklımda
$name = $socialUser->getNickname() ?? $socialUser->getName();
$existingUsername = kullanıcı adın kontrol et
if (!$user) {
// Kullanıcıyı oluştur
$user = User::create([
'name' => $name,
'username' => $username,
'email' => $socialUser->getEmail(),
'password' => Hash::make(Str::random(7)),
]);
User tablosundaki kulllanıcı adını kontrol ederek eklemek vardı ama ben bu gün sosyal medyada birşey gördüm https://www.perplexity.ai/ yeni bir yapay zeka ve Gpt4'ü ücretsiz olarak kullandırdığını iddia ettiğinden denemek istedim google ile kayıt olmaya çalışınca direk username değerimi soran bir input verdi ve kendi belirlediğim username değeri ile kadoldum bunu bende yapabilirimiyim ?
Aksi halde $existingUsername
varmı bak varsa bu kullanıcı adına blabla ekle yoksa devam et gibi işlemleri yapmam gerekicek