/
home
/
obinna
/
html
/
cravings
/
app
/
Http
/
Controllers
/
Auth
/
Upload File
HOME
<?php namespace App\Http\Controllers\Auth; use Illuminate\Foundation\Auth\SendsPasswordResetEmails; use Illuminate\Http\Request; use Illuminate\Support\Str; use Illuminate\Support\Facades\DB; use App\Notifications\ResetPasswordNotification; use App\Http\Controllers\Controller; use App\User; use Illuminate\Contracts\Hashing\Hasher; class ForgotPasswordController extends Controller { /* |-------------------------------------------------------------------------- | Password Reset Controller |-------------------------------------------------------------------------- | | This controller is responsible for handling password reset emails and | includes a trait which assists in sending these notifications from | your application to your users. Feel free to explore this trait. | */ use SendsPasswordResetEmails; /** * Create a new controller instance. * * @return void */ public function __construct(Hasher $hasher) { $this->middleware('guest'); $this->hasher = $hasher; } /** * Display the form to request a password reset link. * * @return \Illuminate\View\View */ public function showLinkRequestForm() { return view('auth.passwords.email', ['page' => 'User']); } /** * Send a reset link to the given user. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\RedirectResponse|\Illuminate\Http\JsonResponse */ public function sendResetLinkEmail(Request $request) { $this->validateEmail($request); $db = DB::getMongoDB(); $email = $request->input('email'); $user = User::where('email', $email)->first(); if (!$user) { return view('auth.verify', ['message' => 'User with email ' . $email . ' does not exist.', 'page' => 'User']); } $db->password_resets->deleteOne(['email' => $email]); $token = Str::random(60); $inserted = $db->password_resets->insertOne([ 'email' => $request->email, 'token' => $this->hasher->make($token), 'created_at' => (new \DateTime('now', new \DateTimeZone('Africa/Lagos')))->format('Y-m-d H:i:s') ]); $user->sendPasswordResetNotification($token); return view('auth.verify', ['message' => 'A reset link has been sent to ' . $user->email, 'page' => 'User']); } }