@NikSIk31

Laravel как работает temporarySignedRoute?

Здравствуйте! Хотелось бы узнать как работает ссылка вида:

test/email/verify/19?expires=1586985879&hash=8026c...

и ещё методы её создания и проверки.

Такая ссылка, как я понял, генерируется методом специальным. Значение параметра signature зависит от остальных параметров, и если они не будут меняться, то подпись будет постоянной. (как я понял и проверил)

Я нашел метод в ларавел для генерации такой ссылки при регистрации:

protected function verificationUrl($notifiable)
    {
        return URL::temporarySignedRoute(
            'verification.verify',
            Carbon::now()->addMinutes(Config::get('auth.verification.expire', 60)),
            [
                'id' => $notifiable->getKey(),
                'hash' => sha1($notifiable->getEmailForVerification()),
            ]
        );
    }

Вопрос 1 Раньше в этом методе не было hash. Что изменилось с этого момента? Этот хеш как-то защищает или имеет другую функцию? Он (hash) где-то хранится?

Вопрос 2 Эту ссылку ведь можно подделать как-то, правильно? Если её подделать, можно ведь получить доступ к, например, верификации почты кого-то другого. Есть вариант, что hash как-раз и защищает от поддерлки, но тогда он должен сохранятся по логике где-то и проверяться после.


Вопрос 3 Я открыл ларавел на поздней версии и чуть ранней (кажется на 0.2 пункта) и обнаружил, что там нет hash в передаче. Что-нибудь существенно изменилось с наличием hash и без?
  • Вопрос задан
  • 638 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы