2013-08-28 25 views
12

मैंने अभी तक लॉगिन/पंजीकरण के साथ एक ऐप बनाया है और यह ठीक काम करता है। पंजीकरण के बाद एक स्वागत ईमेल भेजा जाता है।लार्वेल 4: पुष्टिकरण ईमेल कैसे बनाएं?

लेकिन मैं क्या करना चाहता हूं कि उस मेल के भीतर एक लिंक भेजने के लिए, केवल उस पर क्लिक करने के बाद, लॉगिन करना संभव है।

मंच आदि के लिए आम पंजीकरण ईमेल की तरह ..

किसी ने मेरी मदद कर सकते हैं?

public function postRegister() 
{ 
    $input = Input::all(); 

    $rules = array(
     'username' => 'required', 
     'password' => 'required'); 

    $validation = Validator::make($input, $rules); 

    if ($validation->passes()) { 

     $password = $input['password']; 
     $password = Hash::make($password); 

     $user = new User; 
     $user->username = $input['username']; 
     $user->email = $input['email']; 
     $user->password = $password; 

      $mailer = new Mailers\UserMailer($user); 

       // var_dump($mailer); 

        $mailer->welcomeMail()->deliver(); 

        $user->save(); 

     return Redirect::to('afterRegister'); 
    } 

    return Redirect::back()->withInput()->withErrors($validation)->with('message', 'Validation Errors!'); 
} 

धन्यवाद

उत्तर

26

यहाँ कुछ सुराग (वाला नहीं आप के लिए कोड लिखने):

यह postRegister तरीका है।

  • अपनी उपयोगकर्ता तालिका में दो फ़ील्ड जोड़ें: confirmation, confirmed
  • लार्वेल में registration/verify/{confirmation} जैसे मार्ग बनाएं, जिसमें आप दिए गए पुष्टिकरण कोड के साथ अपने डीबी में उपयोगकर्ता को खोजने और खोजने के लिए (यदि पाया गया है, तो उपयोगकर्ता के confirmed फ़ील्ड को 1 सेट करें)।
  • उपयोगकर्ता पंजीकरण पर, एक अद्वितीय पुष्टि कोड उत्पन्न करें (आप इसके लिए str_random() सहायक फ़ंक्शन का उपयोग कर सकते हैं)। तदनुसार नया उपयोगकर्ता के
  • सेट डीबी प्रविष्टि (confirmation = यादृच्छिक कोड, confirmed = 0)
  • अपने नए उपयोगकर्ता के लिए अपना ईमेल में सत्यापन लिंक (अपना सत्यापन मार्ग के अनुसार बनाया गया) उत्पन्न पुष्टिकरण कोड से शामिल करें।

प्रमाणीकरण प्रयास अब इस तरह किया जा सकता है:

$user = array(
     'username' => Input::get('username'), 
     'password' => Input::get('password'), 
     'confirmed' => 1 
); 

if (Auth::attempt($user)) { 
    // success! 
    return Redirect::route('restricted/area'); 
} 
+0

यह संभव एक कस्टम संदेश सेट करने के लिए करता है, तो केवल इस बात की पुष्टि गलत है है। इसलिए आपको एक त्रुटि संदेश मिलता है जैसे खाता अभी तक पंजीकृत नहीं है। –

+1

@ सेवन बी आप रीडायरेक्ट कर सकते हैं :: मार्ग ('प्रतिबंधित/क्षेत्र') -> ('संदेश', 'खाता पंजीकृत नहीं है'); और अपने दृश्य में {{$ message}} का उपयोग करें। – Unnawut

+2

मैं 'पुष्टि' कॉलम का उपयोग नहीं करना पसंद करता हूं। जब उपयोगकर्ता सक्रिय होता है तो मैं पुष्टिकरण कोड हटा देता हूं। इस तरह, पुष्टि_टोकन के बिना सभी उपयोगकर्ता सक्रिय हैं। –

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