У меня две laravel системы и обе подключены к одной главной базе данных
1.customer portal-customer.test
2.admin portal - admin.test
Клиенты не имеют доступа к порталу администратора
Но администратор может создавать клиентов из панели администратора ,
Клиенты не могут войти в свой профиль, пока они не подтвердят свою электронную почту.
В настоящее время, если пользователь создает учетную запись непосредственно через портал клиентов, он получает письмо с подтверждением, и если он / она нажимает по ссылке через 60 минут, аккаунт будет проверен и активирован.
ссылка для проверки выглядит следующим образом:
http://customer.test/email/verify/13/976bdd188ad675ad87c827ca9723fb4a7bda2178?expires=1588242534&signature=cc628ef025eb7cd03fe76093be1e9e3fdfce12f5208c185560d1996b9f662744
Но теперь, когда администратор создает учетную запись пользователя для клиента через панель администратора (admin.test), должен произойти тот же процесс.
Ниже описана функция создания моего пользователя в контроллере
public function store(Request $request)
{
request()->validate([
'name' => ['required', 'alpha','min:2', 'max:255'],
'last_name' => ['required', 'alpha','min:2', 'max:255'],
'email' => ['required','email', 'max:255', 'unique:users'],
'password' => ['required', 'string', 'min:12', 'confirmed','regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{12,}$/'],
'mobile'=>['required', 'regex:/^\+[0-9]?()[0-9](\s|\S)(\d[0-9]{8})$/','numeric','min:9'],
'username'=>['required', 'string', 'min:4', 'max:10', 'unique:users'],
'roles'=>['required'],
'user_roles'=>['required'],
]);
//Customer::create($request->all());
$input = $request->all();
$input['password'] = Hash::make($input['password']);
$user = User::create($input);
$user->assignRole($request->input('roles'));
event(new Registered($user));
//$user->notify(new SendRegisterMailNotification());
return redirect()->route('customers.index')
->with('success','Customer created successfully. Verification email has been sent to user email. ');
}
Здесь также пользователь успешно создает, электронная почта также отправляет на электронную почту пользователя, НО проблема заключается в базовом URL ссылки для проверки .... он имеет быть, customer.test, но он включает в себя admin.test ..... Так что теперь, когда пользователь нажимает на эту ссылку, он переводит клиента на такую ссылку, как
http://admin.test/email/verify/22/3b7c357f630a62cb2bac0e18a47610c245962182?expires=1588247915&signature=7e6869deb1b6b700dcd2a49b2ec66ae32fb0b6dc99aa0405095e9844962bb53c
Поскольку клиенты не разрешено администратору. Пользователь получает запрещенное сообщение 403 ..
Так как я могу изменить этот базовый URL ???
event(new Registered($user));
обрабатывает отправку электронной почты один раз при создании пользователя ..