2016-10-21 90 views
0

當用戶將它們添加到他/她的籃子中時,我需要在我的數據庫中保留項目。我目前使用會話ID(Session::getId()),但是這是在登錄時重新生成的。雖然您可以作爲客人購物,但結帳時您必須註冊。Laravel 5.2通過登錄持續會話ID,可以使用_token?

如果我看看所有會話變量與$request->session()->all()我遇到了_token,這看起來像一個獨特的字符串,它不會在登錄時重新生成,因此我想用這個爲我的籃子?

這是安全嗎?

如果不是,我將不得不在PHP中生成我自己的uuid,並將它們存儲爲basket_id或其他東西,這將節省我不得不這樣做。

非常感謝提前。

+0

'_token'是防禦csrf攻擊。更多在這裏:https://laravel.com/docs/5.3/csrf – ventaquil

+0

@ventaquil完美,正是我所期待的。 –

回答

1

好了,所以我在這裏複製我的評論:

_token是抵禦CSRF攻擊。更多這裏:laravel.com/docs/5.3/csrf

_token字段是唯一的每個請求。您可以將此令牌作爲請求變量或cookie發送。

請記住 - 默認情況下,所有發佈操作都需要此字段(其中一箇中間件持續關注此問題)。

您可以通過功能csrf_token() - 或csrf_field()獲取令牌值以獲取HTML輸入字段。

0

Laravel有一個會話數據庫驅動程序,https://laravel.com/docs/5.3/session#driver-prerequisites

使用它可以在保留項目表中引用會話表。你會知道用戶是否是客人。

你甚至可以看到最後一項活動,並將其保留項目作爲基礎。

+0

我將使用redis進行會話,我想我會使用basket ID方法。 –