Laravel 5.2通过登录持久化会话id,可以使用_token


Laravel 5.2 persistent session id through login, ok to use _token?

当用户将项目添加到他/她的篮子中时,我需要保留数据库中的项目。我目前正在使用会话id (Session::getId()),但这是在登录时重新生成的。虽然你可以作为客人购物,但结账时你必须注册。

如果我看看所有会话变量与$request->session()->all()我遇到了_token,这看起来像一个唯一的字符串,它不会在登录时再生,因此我在考虑使用这个为我的篮子?

这安全吗?

如果不是,我将不得不在PHP中生成我自己的uid并将它们存储为basket_id或其他东西,这将节省我必须这样做。

提前感谢。

好的,我复制我的注释在这里:

_token用于防御CSRF攻击。更多链接:laravel.com/docs/5.3/csrf

_token字段在每个请求中是唯一的。您可以将此令牌作为请求变量或cookie发送。

记住-默认情况下所有post动作都需要这个字段(中间件之一会关注这个字段)

您可以通过csrf_token() -或csrf_field()函数访问令牌值以获得HTML输入字段。

Laravel有一个会话数据库驱动程序https://laravel.com/docs/5.3/session#driver-prerequisites.

使用它,您可以在保留项表中引用会话表。您将知道用户是否是来宾。

您甚至可以看到最后一个活动,并根据它来预订项目。