[英]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.