我已经使用 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 的新手。