为了账号安全,请及时绑定邮箱和手机立即绑定

重新发送电子邮件功能导致 419 | Laravel 页面过期错误

重新发送电子邮件功能导致 419 | Laravel 页面过期错误

PHP
慕丝7291255 2023-05-12 15:20:46
我有这个用于注册用户的功能,这几乎是默认功能,但我添加了一个要发送到电子邮件的令牌,以便用户可以激活帐户,否则用户无法登录。所以我尝试添加一个重新发送功能,所以如果第一次未发送电子邮件时,他们可以手动重新发送,但这会导致 419 错误页面已过期。注册功能  protected function create(array $data)    {        $user = Account::create([            'login' => $data['login'],            'email' => $data['email'],            'password' => Hash::make($data['password']),            'verifyToken'=> Str::random(40),            'active' => (env('CONFIRM_EMAIL', true)) ? 0 : 1        ]);        $thisUser = Account::findOrFail($user->id);        $this->sendEmail($thisUser);        return $user;    }这是重新发送的功能 protected function resend(Request $request)    {        $user = Account::where('email', $request->input('email'))->first();        $user->verifyToken = Str::random(40);        $user->save();        $this->sendEmail($user);        return $user;    }我用这种形式称呼它<form action=" {!! route('resendEmail') !!}" method="POST">      <fieldset class="youplay-input">           <input id="email" type="email" class="@error('email') is-invalid @enderror" placeholder="E-            mail" name="email" value="{{ old('email') }}" required autocomplete="email">      </fieldset>      <button class="btn btn-default db" type="submit" value="Submit">             Resend Verification Link      </button></form>我已经和一个人讨论过这个问题,但我们找不到好的解决方案:How to make resend email link function in Laravel
查看完整描述

1 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

您缺少表单中的 csrf 令牌。<form>标记后添加@csrf.

例子:

<form method="POST" action="/profile">
    @csrf
    </form>
查看完整回答
反对 回复 2023-05-12
  • 1 回答
  • 0 关注
  • 122 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信