簡體   English   中英

Laravel 5.1-內置的密碼重置功能不發送帶有令牌的電子郵件

[英]Laravel 5.1 - Built in password reset functionality not sending email with token

概述:

我創建使用內置在系統中Laravel 5.1密碼重置功能,我已經跟着它究竟是如何說的指示在這里

resources/views/emails/password.blade.php接收一個變量$token ,該變量包含密碼重置令牌,以使用戶與密碼重置請求匹配。 在視圖中,我具有以下代碼,該代碼應在用戶設置新密碼的頁面上創建URL鏈接:

   Click here to reset your password: {{ url('password/reset/'.$token) }}

問題:

它根本不發送電子郵件。 但是我意識到,如果刪除最后一個斜杠(請參見下文):

   Click here to reset your password: {{ url('password/reset'.$token) }}

我收到類似http://mywebsite.com/password/reset35df435dfgdfg...

結論:

每當password/reset/$token之間出現斜杠時,就不會發送電子郵件。 即使當我手動鍵入URL時。

為什么$token之前的/會影響所發送的電子郵件? 有任何想法嗎?

嘗試的解決方案:

 url('password/reset', [$token]); //DID NOT WORK

 action('Auth\PasswordController@getEmail', ['token' => $token]);  //DID NOT WORK

 route('password/email', ['token' => $token]); //DID NOT WORK

 url('password/reset/'.$token); //DID NOT WORK

這樣嘗試

url helper函數的第二個參數是與url一起傳遞的參數數組。 代替將參數附加到url ..的末尾,您可以像下面這樣使用。

url('password/reset', [$token]);

我找到了解決方案! 這不是通常的情況,但是如果您添加了反斜杠,它將保留正斜杠,並且令牌不會有問題。

url('password/reset\\/', [$token]);

謝謝,祝你好運!

暫無
暫無

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

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