Восстановление пароля в Laravel 5.4

807
15 августа 2017, 16:24

Как настроить восстановление пароля через электронную пошту используя стандартное обеспечение и PHPMailer?

Нашел пример на github:

<?php 
namespace Illuminate\Foundation\Auth; 
use Illuminate\Support\Str; 
use Illuminate\Http\Request; 
use Illuminate\Support\Facades\Auth; 
use Illuminate\Support\Facades\Password; 
trait ResetsPasswords 
{ 
    use RedirectsUsers; 
    /** 
     * Display the password reset view for the given token. 
     * 
     * If no token is present, display the link request form. 
     * 
     * @param  \Illuminate\Http\Request  $request 
     * @param  string|null  $token 
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View 
     */ 
    public function showResetForm(Request $request, $token = null) 
    { 
        return view('auth.passwords.reset')->with( 
            ['token' => $token, 'email' => $request->email] 
        ); 
    } 
    /** 
     * Reset the given user's password. 
     * 
     * @param  \Illuminate\Http\Request  $request 
     * @return \Illuminate\Http\RedirectResponse 
     */ 
    public function reset(Request $request) 
    { 
        $this->validate($request, $this->rules(), $this->validationErrorMessages()); 
        // Here we will attempt to reset the user's password. If it is successful we 
        // will update the password on an actual user model and persist it to the 
        // database. Otherwise we will parse the error and return the response. 
        $response = $this->broker()->reset( 
            $this->credentials($request), function ($user, $password) { 
                $this->resetPassword($user, $password); 
            } 
        ); 
        // If the password was successfully reset, we will redirect the user back to 
        // the application's home authenticated view. If there is an error we can 
        // redirect them back to where they came from with their error message. 
        return $response == Password::PASSWORD_RESET 
                    ? $this->sendResetResponse($response) 
                    : $this->sendResetFailedResponse($request, $response); 
    } 
    /** 
     * Get the password reset validation rules. 
     * 
     * @return array 
     */ 
    protected function rules() 
    { 
        return [ 
            'token' => 'required', 
            'email' => 'required|email', 
            'password' => 'required|confirmed|min:6', 
        ]; 
    } 
    /** 
     * Get the password reset validation error messages. 
     * 
     * @return array 
     */ 
    protected function validationErrorMessages() 
    { 
        return []; 
    } 
    /** 
     * Get the password reset credentials from the request. 
     * 
     * @param  \Illuminate\Http\Request  $request 
     * @return array 
     */ 
    protected function credentials(Request $request) 
    { 
        return $request->only( 
            'email', 'password', 'password_confirmation', 'token' 
        ); 
    } 
    /** 
     * Reset the given user's password. 
     * 
     * @param  \Illuminate\Contracts\Auth\CanResetPassword  $user 
     * @param  string  $password 
     * @return void 
     */ 
    protected function resetPassword($user, $password) 
    { 
        $user->forceFill([ 
            'password' => bcrypt($password), 
            'remember_token' => Str::random(60), 
        ])->save(); 
        $this->guard()->login($user); 
    } 
    /** 
     * Get the response for a successful password reset. 
     * 
     * @param  string  $response 
     * @return \Illuminate\Http\RedirectResponse 
     */ 
    protected function sendResetResponse($response) 
    { 
        return redirect($this->redirectPath()) 
                            ->with('status', trans($response)); 
    } 
    /** 
     * Get the response for a failed password reset. 
     * 
     * @param  \Illuminate\Http\Request 
     * @param  string  $response 
     * @return \Illuminate\Http\RedirectResponse 
     */ 
    protected function sendResetFailedResponse(Request $request, $response) 
    { 
        return redirect()->back() 
                    ->withInput($request->only('email')) 
                    ->withErrors(['email' => trans($response)]); 
    } 
    /** 
     * Get the broker to be used during password reset. 
     * 
     * @return \Illuminate\Contracts\Auth\PasswordBroker 
     */ 
    public function broker() 
    { 
        return Password::broker(); 
    } 
    /** 
     * Get the guard to be used during password reset. 
     * 
     * @return \Illuminate\Contracts\Auth\StatefulGuard 
     */ 
    protected function guard() 
    { 
        return Auth::guard(); 
    } 
}

Как его подстроить под PHPMailer?

READ ALSO
Bitrix компонент rss, ajax

Bitrix компонент rss, ajax

Пишу компонента по парсингу и записи Rss ленти в инфоблоки, не зная bitrix-аЗдесь результат: https://bitrix

318
JSON MySQL, пересортировка &ldquo;ключей&rdquo; [требует правки]

JSON MySQL, пересортировка “ключей” [требует правки]

глупый недочет, каких бы это плюсов производительности не дало, это в любом случае минус, ключи должны сохранять свою изначальную позицию!

303