2016-08-28 11 views
16

अब मैं अपने आधार साइट पर उपयोगकर्ता के सत्यापन के लिए ऐसा ही कुछ प्रयोग कर रहा हूँ के साथ Laravel पासपोर्ट का उपयोग करें:कैसे एक कस्टम उपयोगकर्ता नाम स्तंभ

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

मैं कैसे उपयोगकर्ता नाम के रूप में कस्टम स्तंभ का उपयोग के लिए इस कोड को संशोधित कर सकते हैं? https://laravel.com/docs/5.3/passport#password-grant-tokens

उत्तर

40

आप अपने उपयोगकर्ता मॉडल मेंForPassport विधि का उपयोग कर सकते हैं।

इस विधि तर्क के रूप में उपयोगकर्ता नाम लेते हैं, और वापसी उपयोगकर्ता मॉडल

उदाहरण के लिए:

class User extends Authenticatable 
{ 
    use HasApiTokens, Notifiable; 

    // ... some code 

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

एक आकर्षण की तरह काम करते हैं। धन्यवाद। – tehcpu

+0

धन्यवाद आदमी। मुझे एक टन काम बचाया। पासवर्ड अनुदान के लिए प्रमाणीकरण मॉड्यूल को फिर से लिखने जा रहा था। लेकिन यह जवाब हुआ। –

+0

पासवर्ड को अलग डेटाबेस तालिका में संग्रहीत करने के बारे में कैसे है? या यदि प्रमाण पत्र किसी तृतीय पक्ष API (हुड के तहत) द्वारा मान्य हैं? –

2

थोड़ा भी जवाब देने के लिए देर हो चुकी है, लेकिन मैं यह पता लगाने की कोशिश एक कठिन समय चल रहा है , इसलिए पूर्णता के लिए और भविष्य में दूसरों की मदद करने के लिए।

यदि आप this part of passport's code पर एक नज़र डालें तो आप देखेंगे कि यह validateForPassportPasswordGrant विधि भी देखता है, इसलिए अलेक्जेंडर के उत्तर के अतिरिक्त, आप कस्टम फ़ील्ड का उपयोग करके किसी उपयोगकर्ता को प्रमाणित कर सकते हैं।

उम्मीद है कि यह किसी की मदद करेगा।

संबंधित मुद्दे