После подтверждения электронной почты перенаправьте пользователя по указанному пути, который основан на запрос - PullRequest
0 голосов
/ 09 ноября 2018
protected function verificationUrl($notifiable) {
    return URL::temporarySignedRoute(
        'verification.verify', Carbon::now()->addMinutes(60), ['id' => $notifiable->getKey()]
    );
}

эта функция создает URL со всеми данными на основе данных $notifiable json. Который передается на электронную почту.

$this->verificationUrl($notifiable)

У меня нет нулевого успеха, чтобы этот URL и фактическая проверка электронной почты работали с дополнительным параметром redirectTo. Всякий раз, когда я пытаюсь добавить этот параметр, весь процесс проверки тормозит. Такое ощущение, что нельзя иметь что-то дополнительное.

Я могу сохранить cookie, который будет использоваться после проверки, однако есть ли технически более правильный способ сделать это, используя VerificationController?

protected $redirectTo = '/';

public function __construct() {
    $this->middleware('auth');
    $this->middleware('signed')->only('verify');
    $this->middleware('throttle:6,1')->only('verify', 'resend');
}

пробовал:

protected function verificationUrl($notifiable) {
    return URL::temporarySignedRoute(
        'verification.verify', Carbon::now()->addMinutes(60), ['id' => $notifiable->getKey()]
    ).'&redirectTo=https://root.loc/whatever'; 
}

Я даже попытался проанализировать сгенерированный URL (без дополнительного параметра) и вставить в другую позицию. Тем не менее, пока безуспешно.

1 Ответ

0 голосов
/ 09 ноября 2018

Вы добавляете параметр не в том месте. Должен быть в массиве для третьего аргумента, переданного в URL :: временный-подписьRoute ():

protected function verificationUrl($notifiable)
{
    return URL::temporarySignedRoute(
        'verification.verify',
        Carbon::now()->addMinutes(60), [
            'id' => $notifiable->getKey(),
            'redirect_to' => route('foo')
        ]
    );
}
...