VerifyEmailController.php
1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Carbon\Carbon;
use Illuminate\Http\Request;
class VerifyEmailController extends Controller
{
public function __construct() {
$this->middleware('guest');
}
public function message() {
return view('auth.verify-message');
}
// Активация аккаунта после перехода по ссылке
public function verify($token, $id) {
//удаляем пользователей, которые не подтвердили почту
$expire = Carbon::now()->subMinute(60);
User::whereNull('email_verified_at')->where('created_at', '<', $expire)->delete();
//пробуем найти пользователя по идентификатору
$user = User::find($id);
$condition = $user && md5($user->email . $user->name) === $token;
if (!$condition) {
return redirect()
->route('auth.register')
->withErrors('Ссылка для проверки адреса почты устарела');
}
//если же все проверки пройдены, активируем аккаунт
$user->update(['email_verified_at' => Carbon::now()]);
// назначаем роль для нового пользователя
//$user->assignRoles('user');
return redirect()
->route('auth.login')
->with('success', 'Вы успешно подтвердили свой адрес почты');
}
}