اذهب إلى المحتوى

السؤال

نشر (معدل)

احتاج طريقة في حالة قام المستخدم بتسجيل دخول على الموقع ان يتم التحقق عن طريق ارسال رسالة الى البريد الالكتروني gmail مع العلم ان الايميلات موجودة ضمن جدول user في قاعدة البيانات وهل تعتبر هذه الخدمة مجانية ؟

تم التعديل في بواسطة Osama Kha

Recommended Posts

  • 0
نشر

لتنفيذ هذه العملية، يمكنك استخدام الكود التالي في المتحكم Controller لديك :

// in a controller method
$request->validate([
   'email' => 'required|email|exists:users,email',
]);

ما سيحدث هو أن لارافيل سوف يقوم بالتأكد من أن الطلب request يحتوي على بيانات باسم email وأن قيمة هذه البيانات صحيحة وموجودة في جدول users في العمود email

1. في حالة وجود سجل في جدول "users" يتطابق مع البريد الإلكتروني المدخل من قبل المستخدم، يعني ذلك بأن البريد الإلكتروني صحيح.

2. في حالة عدم وجود سجل مطابق في جدول "users" للبريد الإلكتروني، فإن البريد الإلكتروني غير صحيح ويجب عرض رسالة الخطأ المناسبة للمستخدم.

تلك هي الخطوات الأساسية للتحقق من صحة البريد الإلكتروني عند تسجيل الدخول.

  • 0
نشر

صحيح بإمكانك استخدام خدمة التحقق عن طريق البريد الإلكتروني في Laravel لإنشاء عملية تسجيل دخول أكثر أمانًا.

وللقيام بذلك، ستحتاج إلى تثبيت حزمة Laravel's Illuminate\Auth\Passwords باستخدام الأمر التالي:

composer require laravel/ui

بمجرد تثبيت الحزمة، ستحتاج إلى إنشاء نموذج للمستخدمين. يمكنك القيام بذلك باستخدام الأمر التالي:

php artisan make:model User

بعد ذلك، ستحتاج إلى إضافة حقل البريد الإلكتروني إلى نموذج المستخدم عن طريق تعديل ملف User.php وإضافة السطر التالي:

protected $fillable = ['name', 'email', 'password'];

أخيرًا، ستحتاج إلى إنشاء ملف لمعالجة طلبات التحقق بواسطة إنشاء ملف جديد يسمى VerifyEmailController.php في الدليل app/Http/Controllers.

في ملف VerifyEmailController.php، ستحتاج إلى إنشاء طريقة تسمى store، وتلك الطريقة ستكون مسؤولة عن إرسال بريد إلكتروني إلى المستخدم مع رابط التحقق.

وتبدو طريقة store على النحو التالي:

public function store(Request $request)
{
    // Validate the request.
    $this->validate($request, [
        'email' => ['required', 'email'],
    ]);

    // Generate a verification code.
    $code = str_random(6);

    // Save the verification code to the database.
    \DB::table('verification_codes')->insert([
        'user_id' => auth()->user()->id,
        'code' => $code,
    ]);

    // Send an email to the user with the verification link.
    Mail::to($request->email)->send(new VerifyEmail($code));

    // Redirect the user to the verification page.
    return redirect()->route('verification.notice');
}

بعد إنشاء ملف VerifyEmailController.php، عليك تسجيله في ملف routes.php من خلال إضافة السطر التالي:

Route::post('/verify-email', 'App\Http\Controllers\VerifyEmailController@store');

الآن، يمكنك البدء في استخدام خدمة التحقق عن طريق البريد الإلكتروني، وإليك كيفية القيام بذلك:

  1. انتقل إلى صفحة تسجيل الدخول.
  2. أدخل عنوان بريدك الإلكتروني وكلمة المرور الخاصة بك.
  3. انقر فوق الزر "تسجيل الدخول".
  4. ستتلقى رسالة بريد إلكتروني تحتوي على رابط التحقق.
  5. افتح الرسالة الإلكترونية وانقر فوق الرابط.
  6. سيتم نقلك إلى صفحة التحقق.
  7. أدخل رمز التحقق الذي تلقيته في الرسالة الإلكترونية.
  8. انقر فوق الزر "تحقق".
  9. سيتم تسجيل دخولك الآن إلى حسابك.
  • 0
نشر

تأكد من أنك قمت بإعداد بيئتك بشكل صحيح وأن لديك تكوين بريد إلكتروني في ملف .env:
 

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=your_email@gmail.com
MAIL_PASSWORD=your_email_password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=your_email@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

في ملف routes/web.php، أنشئ مسارًا لإرسال رسالة التحقق:
 

use App\Http\Controllers\VerificationController;

Route::get('/send-verification-email', [VerificationController::class, 'sendVerificationEmail'])->name('verification.email');

قم بإنشاء controller باستخدام الأمر
 

php artisan make:controller VerificationController

ثم في VerificationController.php، ضع الكود التالي:
 

use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Mail;
use App\Mail\VerificationEmail;

public function sendVerificationEmail()
{
    $user = Auth::user();

    $token = // قم بإنشاء رمز التحقق هنا وقم بتخزينه في جدول المستخدم

    // ارسال تحقق للايميل
    Mail::to($user->email)->send(new VerificationEmail($token));

    return redirect()->back()->with('message', 'Verification email sent!');
}

باستخدام الأمر التالي، قم بإنشاء Mailable لإرسال رسالة التحقق:
 

php artisan make:mail VerificationEmail

ثم في VerificationEmail.php، ضع الكود التالي:
 

public $token;

public function __construct($token)
{
    $this->token = $token;
}

public function build()
{
    return $this->view('emails.verification');
}

أنشئ ملف verification.blade.php في المجلد resources/views/emails وضع فيه محتوى رسالة التحقق.
 

أضف رابطًا أو زرًا في واجهة المستخدم للسماح للمستخدم بإرسال رسالة التحقق, أو عند الضغط على زر login يقوم بإرسال رسال التحقق

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...