Я использую стандартную регистрацию Laravel и каждый раз, когда я регистрирую пользователя, система в настоящее время регистрирует его, что мне не нужно.
По какой-то причине я думал, что у меня это работает, но сейчас я тестируюувидеть проблему.Ниже приведен мой контроллер регистрации:
<?php
namespace App\Http\Controllers\Auth;
use App\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Http\Request;
use Illuminate\Auth\Events\Registered;
use Illuminate\Support\Str;
use Mail;
use App\Mail\verifyEmail;
use Illuminate\Support\Facades\Session;
class RegisterController extends Controller
{
use RegistersUsers;
protected $redirectTo = '/';
public function __construct()
{
$this->middleware('guest');
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
protected function create(array $data)
{
$user = User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'verifytoken' => Str::random(40),
'role_id' => $data['role_id']
]);
$thisUser = User::findOrFail($user->id);
Session::flush('status', 'Please verify your email for account activation');
$this->sendEmail($thisUser);
return $user;
}
public function sendEmail($thisUser){
Mail::to($thisUser['email'])->send(new verifyEmail($thisUser));
}
public function sendEmailDone($email, $verifytoken){
User::where(['email'=>$email, 'verifytoken'=>$verifytoken])->update(['status'=>'1', 'verifytoken'=>NULL]);
return redirect('/login');
}
public function verifyEmail(){
return view('emails.veryEmail');
}
}
Пользователь регистрируется, ему отправляется электронное письмо с токеном, и он может быть авторизован только после активации токена по электронной почте.
Единственная проблема здесь в том, что пользователь в настоящее время входит в систему автоматически.
Я знаю, что есть строка с охранником, которая обычно регистрирует пользователя, но у меня даже этого нет.