laravel проверка электронной почты mailtrap работает на localhost, но не работает на сервере ubuntu digitalocean

#laravel #mailtrap

#laravel #mailtrap

Вопрос:

Я успешно реализовал подтверждение по электронной почте моего веб-приложения на localhost с помощью mailtrap. Однако после развертывания моего веб-приложения на сервере ubuntu digitalocean каждый раз, когда я нажимаю на ссылку подтверждения регистрации из mailtrap после регистрации в моем веб-приложении, происходит сбой. Например, я полагаю, что мой домен aaa.com . Когда я получу к нему доступ и зарегистрируюсь, я получу электронное письмо в mailtrap, например http://aaa.com/email/verify/10?expires=1610106497amp;signature=51a29fa6ee0b8949d9d98d4d52800948b43761a3088e8e6be8b4b1316e3b3157 Я нажимаю на эту ссылку, чтобы получить подтверждение, однако это не удается. Хотя проверка электронной почты с помощью mailtrap проходит успешно, когда я запускаю свое веб-приложение на localhost.

В контроллере проверки функция проверки:

 public function verify(Request $request, User $user)
{
    // ko co link valid
    if (! URL::hasValidSignature($request)) {
        Log::info('url', URL::getFacadeAccessor());
        Log::info('has validsignature', URL::hasValidSignature($request));
        return response()->json([
            //'status' => 'The verification link is invalid.',
            'status' => trans('verification.invalid'),
        ], 400);
    }

    if ($user->hasVerifiedEmail()) {
        return response()->json([
            //'status' => 'The email is already verified.',
            'status' => trans('verification.already_verified'),
        ], 400);
    }

    $user->markEmailAsVerified();

    event(new Verified($user));

    return response()->json([
        //'status' => 'Your email has been verified!',
        'status' => trans('verification.verified')
    ]);
}
 

Я обнаружил, что URL::hasValidSignature($request) не может проверить URL $request.
Пожалуйста, помогите мне. Я новичок в laravel и digitalocean.

Комментарии:

1. что вы подразумеваете под сбоем? где ошибка? вы проверили журналы? вы проверяли брандмауэр?

2. можем ли мы просмотреть ваш файл журнала? что написано в вашем журнале

3. @zeroone Я удалил содержимое из laravel.log. Затем я регистрируюсь в своем веб-приложении, чтобы получить ссылку для подтверждения электронной почты из mailtrap. Я нажимаю на эту ссылку, но она показывает недействительную ссылку. Я возвращаюсь к laravel.log, но он ничего не показывает. Если я запускаю свое приложение на localhost, подтверждение по электронной почте активируется хорошо. Я не знаю почему. Я впервые развертываю свое веб-приложение на digitalocean.

4. @DeepeshThapa Я регистрируюсь в своем веб-приложении, чтобы получить ссылку для подтверждения электронной почты из mailtrap. Я нажимаю на эту ссылку, но она показывает недействительную ссылку. Я возвращаюсь к laravel.log, но он ничего не показывает. Если я запускаю свое приложение на localhost, подтверждение по электронной почте активируется хорошо. Я не знаю почему. Это первый раз, когда я развертываю свое веб-приложение на digitalocean

5. Например, мой домен aaa.com . Когда я получу к нему доступ и зарегистрируюсь, я получу электронное письмо в mailtrap, например aaa.com/email/verify /… Я нажимаю на эту ссылку, чтобы получить подтверждение, однако это не удается.