Kaynağa Gözat

Email verified

Mostafijur Rahman 1 yıl önce
ebeveyn
işleme
c81746890c

+ 4 - 0
app/Http/Controllers/AjaxController.php

@@ -435,6 +435,7 @@ class AjaxController extends Controller
             }
 
             $user_data = User::find($req->id);
+            $token =Str::random(64);
 
             if($user_data){
 
@@ -459,6 +460,9 @@ class AjaxController extends Controller
                 $user_data->gender =$req->gender;
                 $user_data->password =Hash::make($req->password);
                 $user_data->status =1;
+                $user_data->email_verification=1;
+                $user_data->remember_token=$token;
+                $user_data->email_verified_at=now();
                 $user_data->update();
 
 

+ 1 - 2
app/Http/Controllers/Auth/LoginController.php

@@ -59,8 +59,7 @@ class LoginController extends Controller
         }else{
             if($student->status == 0){
                 return redirect('/login')->with('error', 'Account Status is not Activated!');
-            }
-            else{
+            }else{
                 $credentials = [
                     'email' => $request->email,
                     'password' => $request->password,

+ 18 - 5
app/Http/Controllers/Auth/RegisterController.php

@@ -13,6 +13,7 @@ use Illuminate\Support\Facades\Hash;
 //use App\Mail\SignUp;
 use App\Models\ReferUser;
 use Auth;
+use Illuminate\Support\Str;
 
 class RegisterController extends Controller
 {
@@ -77,7 +78,8 @@ class RegisterController extends Controller
     protected function create(Request $req)
     { 
         //if($data['user_type']==1){
-            $data = User::create([
+            $token =Str::random(64);
+            $user_data = User::create([
                 'first_name' => $req->givenname,
                 'last_name' => $req->familyname,
                 'email' => $req->email,
@@ -87,6 +89,7 @@ class RegisterController extends Controller
                 'user_type' => $req->user_type,
                 'password' => Hash::make($req->password),
                 'status' => 1,
+                'remember_token' => $token,
             ]);
 
             $refer_user_exists = ReferUser::where('email',$req->email)->first();
@@ -96,8 +99,17 @@ class RegisterController extends Controller
                 $refer_user_exists->update();
             }
 
-            //Mail::to('test@mail.com')->send(new SignUp($data->id));
-          return redirect()->to("/login")->with('success','Your registration successfully saved.');
+            $data['token'] = $token; 
+            $data['name'] = $req->first_name .''.$req->last_name;  
+            $user_mail = $req->email;
+            $from = 'test@mail.com';
+
+            Mail::send('email.student_signup_verify_email',$data, function ($message) use ($user_mail,$from) {
+                $message->from($from);
+                $message->to($user_mail)->subject('Signup Email Verify');
+            });  
+            
+          return redirect()->to("/login")->with('success','Your registration successfully saved. Please check your email for verification');
         //}    
          
 
@@ -111,10 +123,11 @@ class RegisterController extends Controller
 
      
 
-    public function email_verification($id)
+    public function email_verification($token)
      {
-        $data = User::find($id);
+        $data = User::where('remember_token',$token)->first();
         $data->email_verification=1;
+        $data->email_verified_at=now();
         $data->update();
         return Redirect('/login')->with('success','Your mail is activated successfully. Login here ');
      }

+ 4 - 0
app/User.php

@@ -32,6 +32,10 @@ class User extends Authenticatable
         'user_type',
         'ref_no',
         'others_department',
+        'status',
+        'remember_token',
+        'email_verification',
+        'email_verified_at',
     ];
 
     /**

+ 116 - 0
resources/views/email/student_signup_verify_email.blade.php

@@ -0,0 +1,116 @@
+<!DOCTYPE html>
+    <html lang="en">
+        <head>
+            <meta charset="utf-8" />
+            <title>Research Admission</title>
+            <meta name="viewport" content="width=device-width, initial-scale=1.0">
+            <meta name="description" content="Information & Guidance on the PhD Process, Connect with Supervisor and Many" />
+            <meta name="keywords" content="" />
+
+            <!-- facebook tags -->
+            <meta property="og:url" content="http://www.facebook.com/researchadmission"/>
+            <meta property="og:type" content="website"/>
+            <meta property="og:title" content="Research Admission"/>
+            <meta property="og:description" content="Information & Guidance on the PhD Process, Connect with Supervisor and Many"/>
+            <!-- Linkedin tags -->
+            <meta property="og:url" content="https://www.linkedin.com/company/researchadmission"/>
+            <meta property="og:type" content="website"/>
+            <meta property="og:title" content="Research Admission"/>
+            <meta property="og:description" content="Information & Guidance on the PhD Process, Connect with Supervisor and Many"/>
+
+            <!-- favicon -->
+            <link rel="shortcut icon" href="{{asset('web/images/logo.png') }}">
+            <!-- Bootstrap -->
+            <link href="{{ asset('web/css/bootstrap.min.css') }}" rel="stylesheet" type="text/css" />
+            <!-- tobii css -->
+            <link href="{{asset('web/css/tobii.min.css')}}" rel="stylesheet" type="text/css" />
+            <!-- Icons -->
+            <link href="{{asset('web/css/materialdesignicons.min.css')}}" rel="stylesheet" type="text/css" />
+            <link rel="stylesheet" type="text/css" href="{{ asset('web/stylesheets/font-awesome.min.css') }}" />
+            <link rel="stylesheet" href="https://unicons.iconscout.com/release/v3.0.6/css/line.css">
+            <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css">
+
+            <!-- Slider -->
+            <link rel="stylesheet" href="{{asset('web/css/tiny-slider.css')}}"/>
+            <!-- Main Css -->
+            <link href="{{asset('web/css/style.css')}}" rel="stylesheet" type="text/css" id="theme-opt" />
+            <link href="{{asset('web/css/colors/default.css')}}" rel="stylesheet" id="color-opt">
+            <link rel="preconnect" href="https://fonts.googleapis.com">
+            <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+            <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;900&display=swap" rel="stylesheet">
+
+            <link rel="preconnect" href="https://fonts.googleapis.com">
+            <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+            <link href="https://fonts.googleapis.com/css2?family=Ubuntu:wght@700&display=swap" rel="stylesheet">
+            <link rel="preconnect" href="https://fonts.googleapis.com">
+            <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+            <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@200;300&display=swap" rel="stylesheet">
+            <link rel="preconnect" href="https://fonts.googleapis.com">
+            <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+            <link href="https://fonts.googleapis.com/css2?family=Montserrat+Alternates&display=swap" rel="stylesheet">
+            <link rel="stylesheet" href="{{ asset('css/pnotify/pnotify.min.css') }}">
+            <link href="{{ asset('css/noty/lib/noty.css') }}" rel="stylesheet" type="text/css">
+       </head>
+       <style>
+
+            body {
+                font-family: 'Oswald', sans-serif;
+                font-family: 'Quicksand', sans-serif;
+            }
+            h1, h2, h3, h4, h6 {
+                font-family:Ubuntu !important;
+            }
+            h5{
+                font-family: 'Montserrat Alternates', sans-serif !important;
+            }
+            .bg-half-170 {
+            padding:0px;
+            }
+            .tmail{
+                color: #a7a7a7;
+                text-align: center;
+                margin: 0px;
+            }
+       </style>
+        <section>
+            <div class="container mt-5 mb-5">
+                <div class="col-md-12">
+                    <div class="row">
+                        <div class="col-md-1"></div>
+                        <div class="col-md-9">
+                            <div class="card rounded border-0 shadow p-5" style="background-color:white;">
+                                <h3 style="text-align: center; font-family:Ubuntu !important; color: #3c4858 !important; font-size: 30px !important;">Research Admission</h3>
+                                <p class="mt-5">Dear {{$name}},</p>
+                                <p class="mt-3">Thank you for registering with our platform. You need to verify your email address in order to continue with your application.</p>
+                                <p class="mt-2"> To complete the verification process, please click on the following link or copy it into your web browser: </p>
+                                <a href="{{url('verify')}}/{{$token}}" style="color: black">click here</a>
+                                <p class="mt-2"> If you did not register with our platform, please ignore this message.</p>
+                                <p class="mt-2" style="margin: 0px;">Best regards,</p>
+                                <p>Research Admission</p>
+                                    <div style="border-top: 1px solid #eee;">
+                                    <p class="mt-3 tmail" style="font-style: italic; font-size: 12px;">This email was sent to example@gmail.com</p>
+                                </div>
+                                <p class="mt-3 tmail" style="font-size: 12px;">Copyright © {{date('Y')}} Research Admission</p>
+                            </div>
+                        </div>
+                    </div><!--end row-->
+                </div>
+            </div> <!--end container-->
+        </section><!--end section-->
+        <!-- Hero End -->
+
+        <!-- javascript -->
+        <script src="{{asset('web/js/bootstrap.bundle.min.js')}}"></script>
+        <!-- tobii js -->
+        <script src="{{asset('web/js/tobii.min.js')}}"></script>
+        <!-- SLIDER -->
+        <script src="{{asset('web/js/tiny-slider.js')}}"></script>
+        <!-- Icons -->
+        <script src="{{asset('web/js/feather.min.js')}}"></script>
+        <!-- Main Js -->
+        <script src="{{asset('web/js/plugins.init.js')}}"></script>
+        <script src="{{asset('web/js/app.js')}}"></script>
+        <script src="{{ asset('css/pnotify/pnotify.js') }}"></script>
+        <script src="{{ asset('css/noty/lib/noty.min.js') }}"></script>
+        </body>
+  </html>

+ 3 - 0
resources/views/home.blade.php

@@ -2,6 +2,9 @@
 @section('content')
         <section class="bg-half-170 d-table w-100" style="background-color: #efefef; height: 100vh;">
             <div class="container mt-5 pt-4" style="padding: 10px 20px 0px 20px;">
+                <div class="col-md-12">
+                    <span style="padding:5px; background: #ffbd59;"> Sorry! your email is not verified.</span>
+                </div>
                 <div class="col-md-12">
                     <div class="card p-2 rounded border-0" style="background-color: #16183f1c; color: #141639c4;">
                         <div class="col-md-12">

+ 2 - 1
routes/web.php

@@ -43,12 +43,13 @@ Route::get('/landing', function () {
 
 Auth::routes();
 
-Route::get('/email-verification/{id}', [App\Http\Controllers\RegisterController::class,'email_verification'])->name('/email-verification');
+//Route::get('/email-verification/{id}', [App\Http\Controllers\RegisterController::class,'email_verification'])->name('/email-verification');
 
 Route::get('/login', [App\Http\Controllers\Auth\LoginController::class,'showLoginForm'])->name('login');
 Route::post('/student-login', [App\Http\Controllers\Auth\LoginController::class,'login'])->name('student-login');
 Route::get('register', [App\Http\Controllers\Auth\RegisterController::class,'showRegistrationForm'])->name('register');
 Route::post('student-register', [App\Http\Controllers\Auth\RegisterController::class,'create'])->name('student-register');
+Route::get('/verify/{token}', [App\Http\Controllers\Auth\RegisterController::class,'email_verification'])->name('email-verification');
 
 Route::get('student-q-form/{hash}', [App\Http\Controllers\HomeController::class,'student_q_form']);
 Route::get('register/{hash}', [App\Http\Controllers\HomeController::class,'wishlist_student_register']);