site ecommerce ب laravel 7 الجزء الثالت

imadbelasri Laravel
LA

فهاد الجزء الثالت من site ecommerce ب laravel 7 غادي نشوفوا كيفاش نزيدو login & logout بل email activation فالمستخدم مغادي يتسجل فالموقع ديالنا ويمكنلوا يدخل حتى يكون الحساب ديالو مفعل.


نظرة سريعة بالفيديو


1- إضافة controller ActivationController

غادي تزيد controller جديد سميه ActivationController  فيه جوج ديال les fonctions الأولى غادي تفعل الحساب ديال المستخدم بالإيمايل ديالو الثانية غادي تعاود ترسل ليه رابط التفعيل في حالة ما عاود طلب الرابط من جديد.

الكود ديال الملف هو :

                                                    
                                                        <?php

namespace App\Http\Controllers;

use App\User;
use Illuminate\Http\Request;
use App\Mail\ActivateYourAccount;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;

class ActivationController extends Controller
{
    //activate your account
    public function activateUserAccount($code)
    {
        $user = User::whereCode($code)->first();
        $user->code = null;
        $user->update([
            "active" => 1
        ]);
        Auth::login($user);
        return redirect("/")->withSuccess("connected");
    }

    //send email to activate user account
    public function resendActivationCode($email)
    {
        $user = User::whereEmail($email)->first();
        if ($user->active) {
            return redirect("/");
        }
        Mail::to($user)->send(new ActivateYourAccount($user->code));
        return redirect("/login")->withSuccess("Activation link sent");
    }
}
                                                    
                                                

2- إضافة ل class ActivateYourAccount

فيلا شفتي فل controller لي زدنا غادي تلقى خدمنا بل class ActivateYourAccount باش نرسلوا رابط التفعيل للمستخدم لي تسجل فباش تزيدها دير هاد commande :

php artisan make:mail ActivateYourAccount

منبعد سير ل app ثم mail غادي تلقاها تزادت زيد فيها هاد الكود :

                                                        
                                                            <?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class ActivateYourAccount extends Mailable
{
    use Queueable, SerializesModels;

    public $code;
    public $url;
    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct($code)
    {
        //
        $this->code = $code;
        $this->url = route("user.activate", $code);
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->from('dcodingshop@contact.com')
            ->markdown('emails.activate_user_account');
    }
}
                                                        
                                                    

3- إضافة ل template activate_user_account

يلا شفتي ل class ActivateYourAccount لي زدنا غادي تلقى بلي خدمنا ب template سميتها activate_user_account ولي كاينة ف dossier emails.

غادي تمشي ل views زيد dossier emails فيه زيد fichier activate_user_account.blade.php وزيد فيه هاد الكود  : 

                                                        
                                                            @component('mail::message')
    # Activate your account

@component('mail::panel')
    to activate your account
@endcomponent

@component('mail::button',['url' => $url])
    click here
@endcomponent

Thanks.
<br>
team {{ config("app.name") }}

@endcomponent
                                                        
                                                    

4- التسجيل في موقع mailtrap

باش نرسل لإيمايل للمستخدم غادي نخدم بواحد الموقع سميتو mailtrap لي ممكن تشوف الفيديو لي لفوق باش تفتح حساب فيه.

منبعد غادي تمشي ل env. وغادي تزيد ل username ول password لي عطاوك كيف ما مبين فالكود لتحت :

                                                        
                                                            MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=your user name
MAIL_PASSWORD=your password 
MAIL_ENCRYPTION=tls
                                                        
                                                    

دروس ذات صلة

LA

site ecommerce ب laravel 7 الجزء الأول

فهاد ال projet الجديد غادي نقادو site ecommerce ب laravel 7 غادي نزيدو ل paiement ب paypa...


LA

site ecommerce ب laravel 7 الجزء الثاني

فهاد الجزء الثاني من site ecommerce ب laravel 7 غادي نزيدو ل model Category ول controller CategoryCo...


LA

site ecommerce ب laravel 7 الجزء الرابع

فهاد الجزء الرابع من site ecommerce ب laravel 7 غادي نكملوا login و logout وغادي نزيدو تعديلات على L...


LA

site ecommerce ب laravel 7 الجزء الخامس

فهاد الجزء الخامس من site ecommerce ب laravel 7 غادي نشوفوا كيفاش نزيدو ل panier ومن بعد غادي نعرضوا...


LA

site ecommerce ب laravel 7 الجزء السادس

فهاد الجزء السادس من site ecommerce ب laravel 7 غادي نزيدو les routes ديالنا باش داكشي لي زدنا فالجز...


LA

site ecommerce ب laravel 7 الجزء السابع

فهاد الجزء السابع من site ecommerce ب laravel غادي نزيدو ل order model ول controller من بعد غادي نشو...


LA

site ecommerce ب laravel 7 الجزء الثامن

فهاد الجزء الثامن من site ecommerce ب laravel غادي نكملوا الجزء الخاص بالأدمن غادي نزيدو ل factory و...


LA

site ecommerce ب laravel 7 الجزء التاسع

فهاد الجزء التاسع من site ecommerce ب laravel غادي نزيدو la page ديال login ديال الأدمن ومنبعد غادي...


LA

site ecommerce ب laravel 7 الجزء العاشر

فهاد الجزء العاشر من site ecommerce ب laravel غادي نزيدو les pages الخاصين ب les produits أولا الصفح...