我在基于laravel的应用程序中有管理门户和客户门户
customer portal: customer.site
admin portal :admin.site
我可以选择在客户门户上注册客户。用户注册后,将通过验证链接将验证电子邮件发送到用户电子邮件。
示例验证链接可以像这样:http://customer.site/email/verify/10/2bf6330a5b3693fb6f5380e83e5494f82b87a9f8?expires=1588234415&signature=34ac37e86d1de7e316e717f2e1acf32cd4ee6ed97df56d94496bb2fa79a0f608
所以这很好用。
现在我的问题是,
当我尝试通过ADMIN门户(admin.site)创建客户时,用户创建成功,并且验证邮件也成功发送到客户地址。但是,激活链接是这样的
http://admin.site/email/verify/10/2bf6330a5b3693fb6f5380e83e5494f82b87a9f8?expires=1588234415&signature=34ac37e86d1de7e316e717f2e1acf32cd4ee6ed97df56d94496bb2fa79a0f608
因此,当用户点击该链接时,禁止页面显示说您无权访问,因为不允许客户使用管理门户
如何将验证链接设置为customer.site
的客户门户?
这是我在管理控制器中的创建客户功能,
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));
return redirect()->route('customers.index')
->with('success','Customer created successfully. Verification email has been sent to user email. ');
}
我正在从中发送验证邮件
event(new Registered($user));
在我的ENV
中,我甚至添加了一个名为APP_DOMAIN
的参数,并将其值设置为http://customer.site
也在我的app.php
中设置了
'url' => env('APP_DOMAIN', 'http://customer.site'),
但激活邮件链接仍重定向到http://admin.site
如何解决此问题?