%PDF- %PDF-
Direktori : /home/forge/api-takeaseat.eco-n-tech.co.uk/app/Http/Controllers/Auth/ |
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); } } }