Настройка проблемы с ссылкой для подтверждения адреса электронной почты в laravel - PullRequest
0 голосов
/ 30 апреля 2020

У меня есть административный портал и портал клиентов в моем приложении 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

Как я могу решить эту проблему?

...