Сделайте столбец is_verified
и другую колонку verification_hash
в таблице users
. В AuthController.php
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'username' => $data['username'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'verification_hash' => md5($data['name'] . Carbon::now()->timestamp),
'is_verified' => 0,
]);
}
переопределения register
способа отправить его по почте с ссылкой для подтверждения
public function register(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
$this->throwValidationException(
$request, $validator
);
}
$user = $this->create($request->all());
Auth::guard($this->getGuard())->login($user);
// Send verification email
// use $user->verification_hash to generate link
return redirect($this->redirectPath());
}
Теперь эта ссылка проверки должна выглядеть, как показано ниже, как он содержит хэш специфичного для данного пользователя
http://your_domain.com/auth/verify/6d533b7664483d3cadd13c23477e4f12
по этому методу связи, измените is_verified
на 1 для этого пользователя.
Теперь измените метод validator
как этого
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'username' => 'required|max:255|unique:users',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
'is_verified'=>'in:1'
]);
}
Это позволит только тем пользователям, для входа, которые имеют is_verified
значения как 1.
Надежда это помогает.
Поле в базе данных - подтвердить (1/0). Я понимаю, что нужно искать Middleware, но я не понимаю, как сделать эту проверку. –
Посмотрите на [это] (https://blog.damirmiladinov.com/laravel/laravel-5.2-email-verification-with-activation-code.html#.WCPkZB8xA8o). Это для 'L5.2', но он должен работать и для' L5.3'. – linuxartisan
Дорогой ОП, поскольку вы отметили ответ как приемлемый, не могли бы вы объяснить, почему вы это сделали. Если вы смогли адаптировать код в ответе, делитесь своим завершенным решением, чтобы другие посетители могли найти это полезным. Спасибо. –