2016-10-21 1 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 필드는 요청마다 고유합니다. 이 토큰은 요청 변수 또는 쿠키로 보낼 수 있습니다.

기억 - 기본적으로 모든 게시 작업에는이 필드가 필요합니다 (미들웨어 중 하나가이 문제에 계속 주목해야 함).

csrf_token() - 또는 csrf_field() 기능으로 토큰 값에 액세스 할 수 있으며 HTML 입력 필드를 얻을 수 있습니다.

0

Laravel에는 세션 용 데이터베이스 드라이버 인 https://laravel.com/docs/5.3/session#driver-prerequisites이 있습니다.

예약 된 항목 테이블에서 세션 테이블을 참조 할 수 있습니다. 사용자가 게스트인지 여부를 알 수 있습니다.

마지막 활동을보고 예약 된 항목을 기반으로 할 수도 있습니다.

+0

세션에 redis를 사용할 예정이며 바스켓 ID 접근법을 사용합니다. –