2017-12-12 6 views
3

2 시간 동안 자동으로 사용자를 로그 아웃하는 데 시간을 보냈지 만 24 시간이 지난 후에도 강제로 사용자를 로그 아웃 할 수 없습니다.Laravel의 모든 기기에서 모든 사용자를 자동으로 로그 아웃하는 방법은 무엇입니까?

는 성공적으로 로그인 한 후 나는 내 ENV 파일이

BROADCAST_DRIVER=log 
CACHE_DRIVER=file 
SESSION_DRIVER=database 
QUEUE_DRIVER=sync 
처럼 보이는이

'driver' => env('SESSION_DRIVER', 'database'), 
'lifetime' => 1, 
'expire_on_close' => false, 

등이

Name: remember_web_59ba36addc2b2f9401580f014c7f58ea4e30989d 

Content: eyJpdiI6IkE4aFU0RCtVNkhwK3VMbGJ0ZndVUFE9PSIsInZhbHVlIjoidExYTG9tUUc5RkVQUkhjaU80a1wvdHFXcDk4eUxsaG5SRmxLVXp5c1JMdFJlYzFLZ3ZValBoQkhaY1hkKzFqcHIraDROZE5wU0s0K00wRDlMSVExMk50cUxNK2xzMzgrdmx4VW1hZ1paWVpJPSIsIm1hYyI6Ijc2NDZiYTI2MTU1NTA0YjZjMjA4ZmY1ZmU2MzdmZGFhYzdkMWU4NTRmNzEwYzIwZjRkN2E3ZDNlMDQyNWQ5N2QifQ%3D%3D 

Created: Tuesday, December 12, 2017 at 6:55:00 PM 
Expires: Sunday, December 11, 2022 at 6:55:00 PM 

내 session.php 파일 모양처럼 보이는 쿠키가

내 php.ini는 다음과 같습니다.

session.gc_maxlifetime=14 

변경하려고 시도했습니다. 'driver' => env('SESSION_DRIVER', 'database'),은 파일로 쿠키, redis는 작동하지 않았습니다.

모든 기기에서 사용자를 로그 아웃 할 수없는 이유는 무엇입니까?

+2

세션 디렉토리에서 파일을 제거 하시겠습니까? 물론 파일 드라이버를 사용하면 ... – Amarnasan

+0

[Laravel Inactivity time setting]의 가능한 복제본 (https://stackoverflow.com/questions/24133830/laravel-inactivity-time-setting) –

+0

@amarnasan 나는 사용자를 로그 아웃 할 수 있습니다. remember_token을 NULL로 설정하지만 24 시간마다 강제로 로그 아웃해야합니다. – hijacker83

답변

3

/app/config/session.php 파일에서 유휴 세션의 만료 기간을 변경할 수 있습니다. 위의 방법은 당신을 위해 작동하지 않는 경우

보통 24 = 1천4백40분 또는

'lifetime' => 1440, 

'expire_on_close' => false, 

, 당신은

우리는 수동으로 세션 폴더를 삭제하려고,이 작업을 수행 할 수 있으며, User 테이블의 모든 remember_tokens를 지우십시오.

flush:all과 같은 서명으로 flushall로 new command을 만듭니다. 명령의 핸들 방법

는 수행

use App\User; 
use File; 

public function handle() 
{ 
    File::cleanDirectory(storage_path().'/framework/sessions'); 
    User::query()->update(['remember_token' => '']); 
} 

다음 schedule이 명령을 매일 자정

$schedule->command('flush:all')->daily(); 
를 실행하려면이의 즉시 테스트를 원하는 경우 이

PS, 단지

을 실행
php artisan flush:all 

모든 사용자는 로그 아웃해야합니다!

+0

hi Sapnesh Naik. 답장을 보내 주셔서 감사합니다. 사용자가 로그 아웃하는지 여부를 확인하기 위해 '1'로 설정합니다. 쿠키를 확인하면 2022 년에 만료됩니다. 다른 시도가 있습니까? – hijacker83

+0

시험 합격 했습니까?그렇다면 문제없이이 방법을 사용할 수 있습니다. –

+0

아쉽게도 사용자를 로그 아웃하지 않습니다. 나는 내 사용자 테이블에서 remember_token을 NULL로 설정하여 사용자를 로그 아웃 할 수 있지만 강제로 로그 아웃해야합니다. 이 기사를 https://arjunphp.com/laravel5-inactivity-idle-session-logout/ 시도 했는데도 작동하지 않았습니다. Request.php에서 905 : RuntimeException이 발생했습니다. 요청시 세션 저장소가 설정되지 않았습니다. – hijacker83

관련 문제