簡體   English   中英

如何通過電子郵件在Laravel 5.4中重置密碼

[英]How to password reset in Laravel 5.4 by e-mail

當用戶單擊密碼重置按鈕時,如何將密碼重置鏈接發送到用戶電子郵件。

我有一個表格

<form action="/company/password/reset/" method="POST">
      {{ csrf_field() }}
      <div class="row">

        <div class="input-field col s12">

          <input placeholder="Enter your email" id="emails" type="email" class="validate" required name="email">
          <label for="emails">E-mail Address</label>
        </div>   
      </div>
      <p><button type="submit" method="post">SUBMIT</button></p>
    </form>

路線

Route::post('/password/company/reset/', 'PasswordResetController@company');

和控制器

public function company($email)
    {
        $company = $request->email;
    Password::sendResetLink(['email' => $company]);
    }

現在不起作用,這是正確的方法嗎?

我在laravel 5.4中找不到任何有關重置密碼的教程

我收到此錯誤:

用戶必須實現CanResetPassword接口。

如果您的表單操作是/company/password/reset/ ,則路由應定義為

Route::post('/password/company/reset/','PasswordResetController@company');

可以在控制器中檢索表單的輸入,如下所示:

public function company(Request $request) {
    $email = $request->email;
    ...

文檔明確指出:

首先,請驗證您的App\\User模型是否實現了Illuminate\\Contracts\\Auth\\CanResetPassword合同。 當然,框架附帶的App\\User模型已經實現了此接口,並使用Illuminate\\Auth\\Passwords\\CanResetPassword特征來包括實現接口所需的方法。

由於您具有一些自定義用戶模型,因此需要實施此合同才能使用Password::sendResetLink

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM