nasıl

2016-08-28 33 views
16

Şimdi benim taban sitesinde kullanıcı kimlik doğrulaması için böyle bir şey kullanıyorum özel bir kullanıcı adı sütun ile laravel Passport kullanabilirsiniz:nasıl

if (Auth::attempt($request->only(['id', 'password']))) { 
      // 
} 

nasıl kullanıcı adı olarak özel sütunu kullanarak için bu kodu değiştirebilir? https://laravel.com/docs/5.3/passport#password-grant-tokens

cevap

40

Kullanıcı modelinize findForPassport yöntemini kullanabilirsiniz.

Bu yöntem argüman olarak kullanıcı adı almak ve dönüş kullanıcı modeli

Örneğin: cevaplamak için

class User extends Authenticatable 
{ 
    use HasApiTokens, Notifiable; 

    // ... some code 

    public function findForPassport($username) { 
     return $this->where('id', $username)->first(); 
    } 
} 
+0

Bir çekicilik gibi çalışın. Teşekkürler. – tehcpu

+0

Teşekkürler adamım. Bana bir ton çalışma kaydettim. Şifre hibe için kimlik doğrulama modülünü yeniden yazacaktı. Ama bu cevap oldu. –

+0

Parola ayrı bir veritabanı tablosunda da depolanıyorsa nasıl olur? Veya kimlik bilgileri bir üçüncü taraf API'sı (başlık altında) tarafından doğrulanıyorsa? –

2

Biraz çok geç, ama bu anlamaya çalışıyorum zorlanıyorum oldum Bu nedenle, bütünlük adına ve belki de gelecekte başkalarına yardım etmek için.

this part of passport's code'a bakarsanız, bunun bir validateForPassportPasswordGrant yöntemini de görüntülediğini görürsünüz, böylece Alexander'ın yanıtına ek olarak, özel alanları kullanarak bir kullanıcının kimliğini doğrulayabilirsiniz.

Birilerine yardım edeceğini umarız.