2017-11-22 2 views
0

Ich benutze PHP Artisan make: Auth in meinem Projekt funktioniert alles perfekt, außer der gesendete Link zum Zurücksetzen Passwörter. Der Link enthielt nicht die korrekte URL, der Projektname wurde nicht angegeben. Dies ist der Link geschickt, bevor ich auf die Benachrichtigung Lösung gehen: http://localhost/password/reset/05929a8e465ddfa123a4c068da455cf63c3b9b90ec500a0e1045f092bbd0d97a Ich schaffe haben diese Methode in meinem Benutzerklasse:Empfangen eines falschen Reset-Passwort-Link in Laravel 5.5

public function sendPasswordResetNotification($token) { 
    $this->notify(new ResetPasswordNotification($token)); 
} 

und dann habe ich eine Benachrichtigungsklasse erstellt, die toMail Verfahren enthalten die bestehende zu überschreiben ein in \ Anbieter \ Laravel \ Framework \ src \ Illuminate \ Auth \ Benachrichtigungen \ ResetPassword.php:

class ResetPasswordNotification extends Notification { 
use Queueable; 
... 
... 
    public function toMail($notifiable) { 
    return (new MailMessage) 
     ->line('You are receiving this email because we received a password reset request for your account.') 
     ->action('Reset Password', route('password.reset', $this->token)) 
     ->line('If you did not request a password reset, no further action is required.'); 
} 

der Link habe ich nun wie erwartet gearbeitet, und dies ist die gesendete Link: http://localhost/myproject/public/password/reset/435e453cfa30c968c96ded21c964d70e21459d6ae6ffae8f4972c229773e8a6a. aber, ich weiß nicht, ob ich direkt in ResetPassword.php toMail-Methode ändern, anstatt es durch Benachrichtigung zu tun, wird Probleme in der Produktion oder etwas anderes verursachen, werde ich nur ändern -> Aktionsteil.

Vielen Dank.

Antwort

2

In Laravel 5.5 baut die eingebaute Benachrichtigung die URL mit diesem Code:

url(config('app.url').route('password.reset', $this->token, false))) 

Der Wert config('app.url') kann durch Einstellen des APP_URL Variable in Ihrer .env Datei geändert werden. Wenn Sie den Wert APP_URL festlegen, müssen Sie nicht die Mühe machen, die integrierte Funktionalität zu überschreiben.

APP_URL=http://localhost/myproject/public 
+0

Ich habe APP_URL Link geändert, und es hatte nicht funktioniert, deshalb habe ich mit dieser Lösung fortfahren. Ich weiß nicht, ob ich einige Befehle nach dem Bearbeiten von APP_URL string machen sollte? –

+0

@RachidAzzanati Stellen Sie sicher, dass Ihre Konfiguration nicht im Cache gespeichert ist. 'php artisan config: clear' Ich habe gerade einen Test ausgeführt, und das Ändern der' APP_URL' in der '.env' Datei hat zur Änderung der Benachrichtigungs-URL beigetragen. – patricus

+0

Vielen Dank Patricus, es wegen Cache :) –