Я знаю, что этот пост немного устаревший, но у меня была аналогичная проблема с Laravel 7. Я думаю, что приведенный выше ответ Зейна должен быть принятым ответом. Чтобы уточнить это, используйте следующие шаги. Это нужно сделать после установки скаффолдинга auth с помощью composer и php artisan. Примечание: я ни в коем случае не являюсь профессионалом Laravel. Если есть какие-либо проблемы с моим кодом, ПОЖАЛУЙСТА, дайте мне знать. Чем больше я узнаю, тем лучше буду.
Prepare the User Model
Убедитесь, что ваша модель App \ User реализует Illuminate \ Contracts \ Auth \ MustVerifyEmail:
<?php
namespace App;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
// ...
}
Setup Routes
В routes \ web.php измените это:
Auth::routes();
К этому:
Auth::routes(['verify'=>true]);
После этого вы можете указать, для каких маршрутов требуется подтвержденный адрес электронной почты, либо используя промежуточное ПО непосредственно на маршруте, подобном этому:
Route::get('/profile','ProfileController@index')->middleware('verified');
или вы можете сделать это в функции конструктора контроллера следующим образом:
public function __construct()
{
$this->middleware(['auth','verified']);
}
Modified Register Controller
Я использую следующий код контроллера регистра. Обратите внимание, что функция регистрации содержит вызов следующего:
event(new Registered($user));
Это был ключ к отправке письма с первоначальной регистрацией.
Register Controller
Имейте в виду, что этот контроллер был разработан для работы в основном с сайтом ajax, поэтому функция register возвращает ответ json.
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\User;
use Illuminate\Foundation\Auth\RegistersUsers;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Illuminate\Auth\Events\Registered;
use Auth;
class RegisterController extends Controller
{
/*
|--------------------------------------------------------------------------
| Register Controller
|--------------------------------------------------------------------------
|
| This controller handles the registration of new users as well as their
| validation and creation. By default this controller uses a trait to
| provide this functionality without requiring any additional code.
|
*/
use RegistersUsers;
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest');
}
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
protected function validator(array $data)
{
return Validator::make($data, [
'first_name' => ['required', 'string', 'max:255'],
'last_name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
'phone_number' => ['required', 'numeric', 'min:10'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'password_confirmation'=> ['required', 'string'],
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return \App\User
*/
protected function create(array $data)
{
$user=User::create([
'first_name' => $data['first_name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'phone_number' => $data['phone_number'],
'password' => Hash::make($data['password']),
]);
return $user;
}
/**
* Execute registration and login the user
*
* @param array $request
* @return response
*/
public function register(Request $request) {
$validation = $this->validator($request->all());
if ($validation->fails()) {
return response()->json($validation->errors(),422);
}
else{
$user = $this->create($request->all());
event(new Registered($user));
Auth::login($user);
if (Auth::user()){
return response()->json(['success'=>'Registration Successful']);
}
}
}
}
person
Shadow6290
schedule
15.07.2021