2015-09-18 70 views
0

概述發送電子郵件:Laravel 5.1 - 內置密碼重置功能無法與令牌

我創建使用內置在系統中Laravel 5.1密碼重置功能,我已經按照說明它究竟是如何說here

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,電子郵件不發送。即使我手動輸入網址。

爲什麼/$token之前會影響正在發送的電子郵件?有任何想法嗎?

嘗試的解決方案:

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

action('Auth\[email protected]', ['token' => $token]); //DID NOT WORK 

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

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

回答

0

我找到了解決方案!這並不常見,但是如果添加一個反斜槓,它將保留正斜槓,並且它不會有令牌問題。

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

感謝&祝你好運!

+0

不相信這一點。當然,一個常量字符串不能以* backward *斜線結尾,因爲它會避免結束語。那會導致解析錯誤。但是一個正斜槓?這應該沒有任何問題。 – Jason

0

嘗試這樣

URL輔助函數的第二個參數是參數陣列與所述URL傳遞。而不是追加參數結束的URL ..,你可以使用像波紋管。

​​
+0

我也試過了:/ @Alupotha – dzerow

+1

什麼是您的郵件驅動程序? mandrill? smtp? – Alupotha

+0

我使用PHP郵件,我找到了一個解決方案,這個問題是不尋常的,但我的方法工作!爲您投票! :) 謝謝您的幫助! @Alupotha – dzerow