public function verify()
{
if ($this->isDone()) {
return $this->verified();
}
$expireDate = $this->request->session()->get('verification_expire_date');
$tries = $this->request->session()->get('verification_tries');
$key = $this->request->session()->get('verification_key');
if (!present($expireDate) || !present($tries) || !present($key)) {
$this->issue();
return error_popup(trans('user_verification.errors.expired'));
}
if ($expireDate->isPast()) {
$this->issue();
return error_popup(trans('user_verification.errors.expired'));
}
if ($tries > config('osu.user.verification_key_tries_limit')) {
$this->issue();
return error_popup(trans('user_verification.errors.retries_exceeded'));
}
if (str_replace(' ', '', $this->request->input('verification_key')) !== $key) {
$this->request->session()->put('verification_tries', $tries + 1);
return error_popup(trans('user_verification.errors.incorrect_key'));
}
return $this->verified();
}