Здравствуйте! Хотелось бы узнать как работает ссылка вида:
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 и без?