有没有更好的方法来检查用户是否单击了收件箱中的链接(Laravel url $ param到控制器)

时间:2018-11-26 04:46:42

标签: php laravel laravel-5.7

我想知道我的潜在客户是否点击了发送给他电子邮件的链接。

所以我做到了:

我的路线:

Route::get('/audit/{email}/{from?}', 'ProspectPageController@show');

这条路线建立了此链接: mysite.com/audit/jhon@mail.com/inbox

我会将此链接发送至Prospect的电子邮件,如果他单击该链接,我的专栏将会更新。

我的控制器:

public function show($email, $stats = null)
{
     if($stats == 'inbox'){
        $prospected= Prospect::where('email', $email)->first();
        $prospected->stats = '1';
        $prospected->save();
     }
    $prospect= Prospect::where('email', $email)->first();
    return view('prospect.show')->with('prospect', $prospect);

}

我不认为这是个好方法,有没有更好的方法呢?

我可以改善此功能吗?

1 个答案:

答案 0 :(得分:1)

首先为每个邮件生成唯一的令牌并保存在表中,然后发送带有令牌的链接:

示例

token is : 123-456-789

链接是

mysite.com/audit?token=123-456-789

在控制器中,您可以使用令牌进行检查,如果在表中存储令牌和用户ID,则还可以通过用户进行验证。 我英文不太好。我希望你对答案有所了解。