Blame view

app/Http/Controllers/Auth/VerifyEmailController.php 1.57 KB
6a962b009   Андрей Ларионов   Система авторизац...
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', 'Вы успешно подтвердили свой адрес почты');
      }
  }