0

我已经使用 mailtrap 在 localhost 上成功实现了我的 Web 应用程序的电子邮件确认。但是,在我在 ubuntu 服务器 digitalocean 上部署我的 web 应用程序后,每次在我的 web 应用程序上注册后单击 mailtrap 的注册确认链接时,它都会失败。例如,我假设我的域是 aaa.com。当我访问它并注册时,我会在 mailtrap 中收到一封电子邮件,例如http://aaa.com/email/verify/10?expires=1610106497&signature=51a29fa6ee0b8949d9d98d4d52800948b43761a3088e8e6be8b4b1316e3b3157我点击该链接无法获得验证。虽然当我在 localhost 上运行我的网络应用程序时,来自 mailtrap 的电子邮件验证测试是成功的。

在验证控制器中,验证函数为:

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) 无法验证 $request URL。请帮我。我是 laravel 和 digitalocean 的新手。

4

0 回答 0