<?php namespace Laravel\Fortify\Http\Controllers; use Illuminate\Contracts\Auth\StatefulGuard; use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\Date; use Laravel\Fortify\Actions\ConfirmPassword; use Laravel\Fortify\Contracts\ConfirmPasswordViewResponse; use Laravel\Fortify\Contracts\FailedPasswordConfirmationResponse; use Laravel\Fortify\Contracts\PasswordConfirmedResponse; class ConfirmablePasswordController extends Controller { /** * The guard implementation. * * @var \Illuminate\Contracts\Auth\StatefulGuard */ protected $guard; /** * Create a new controller instance. * * @param \Illuminate\Contracts\Auth\StatefulGuard $guard * @return void */ public function __construct(StatefulGuard $guard) { $this->guard = $guard; } /** * Show the confirm password view. * * @param \Illuminate\Http\Request $request * @return \Laravel\Fortify\Contracts\ConfirmPasswordViewResponse */ public function show(Request $request) { return app(ConfirmPasswordViewResponse::class); } /** * Confirm the user's password. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Contracts\Support\Responsable */ public function store(Request $request) { $confirmed = app(ConfirmPassword::class)( $this->guard, $request->user(), $request->input('password') ); if ($confirmed) { $request->session()->put('auth.password_confirmed_at', Date::now()->unix()); } return $confirmed ? app(PasswordConfirmedResponse::class) : app(FailedPasswordConfirmationResponse::class); } }