%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/app/Http/Controllers/Auth/
Upload File :
Create Path :
Current File : //home/forge/api-takeaseat.eco-n-tech.co.uk/app/Http/Controllers/Auth/ForgotPasswordController.php

<?php

namespace App\Http\Controllers\Auth;

use DB;
use Illuminate\Auth\Events\PasswordReset;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Password;
use Illuminate\Auth\Passwords\PasswordBroker;
use App\Http\Controllers\Controller;

class ForgotPasswordController extends Controller
{
    /**
     * @param PasswordBroker $broker
     */
    public function __construct(PasswordBroker $broker)
    {
        $this->broker = $broker;
    }

    /**
     * Validate the reset password token
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function index(Request $request)
    {
        $credentials = $request->only('email', 'token');

        if (is_null($user = $this->broker->getUser($credentials))) {
            return response()->json('Invalid user', 422);
        }

        if (!$this->broker->tokenExists($user, $credentials['token'])) {
            return response()->json('Invalid token', 422);
        }

        return response()->json('Valid token & user');
    }

    /**
     * Handle the users reset password request
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function forgot(Request $request)
    {
        $request->validate(['email' => 'required|email']);

        $status = Password::sendResetLink($request->only('email'));

        if($status == "passwords.sent") {
            return response()->json(__('Please check your email for a reset password link'));
        } elseif ($status == "passwords.throttled") {
            return response()->json(__('You have tried too many times, please try again later.'), 422);
        }

        return response()->json(__("Sorry, we couldn't find a user with the email address you entered."), 422);
    }

    /**
     * Reset the users password
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function reset(Request $request)
    {
        $request->validate([
            'token' => 'required',
            'email' => 'required|email',
            'password' => 'required|min:8|confirmed',
        ]);

        $status = Password::reset(
            $request->only('email', 'password', 'password_confirmation', 'token'),

            function ($user, $password) use ($request) {
                $user->forceFill([
                    'password' => Hash::make($password)
                ])->setRememberToken(Str::random(60));
    
                $user->save();
    
                event(new PasswordReset($user));
            }
        );

        if($status == "passwords.reset") {
            return response()->json(__('Successfully reset your password, please try logging in.'));
        } elseif($status == 'passwords.token') {
            return response()->json(__('Whoops, this token is invalid.'), 422);
        } else {
            return response()->json($status, 422);
        }
    }
}

Zerion Mini Shell 1.0