2017-04-08 2 views
0

Laravel 4에서 "remember me"기능을 만들었습니다.이를 위해 아래 코드를 사용하여 사용자 지정 세션을 설정했습니다. 나는 로그인 함수에서 세션을 설정하고 동일한 함수 내에서 "1 년"이라는 정확한 결과를 확인했다. 그러나 showDashboard() 함수를 사용하여 대시 보드로 리디렉션하고 함수 내에서 세션을 다시 확인한 후 세션을 120 분 ("2 일")으로 변경했습니다.Laravel 4 쿠키 세션 수명이 자동으로 변경됨

로그인 기능 :

public function actionLogin{ 
    //User authentication code 

    $lifetime = time() + 60 * 60 * 24 * 365; // one year 
    Config::set('session.lifetime', $lifetime); 

    //Config::get('session.lifetime'); //<---Giving expected result i.e "One year" 
    return Redirect::to('/dashboard'); 
} 

대시 보드 기능 :

public function showDashboard(){ 
     Config::get('session.lifetime'); //<--- Giving o/p 120 i.e two hours 
} 
+0

왜 Laravel의 자체 인증을 사용하고 사용자를 기억하지 않습니까? https://laravel.com/docs/5.4/authentication#remembering-users – Karl

+0

@ 카를 예, 가능하지만 Laravel 4를 사용하고 있습니다 – Omkar

답변

0

는 config 값을 덮어 쓸 수 없습니다, 당신은 단지 그 하나 개의 인스턴스에 대한 설정을 설정하는 Config::set('session.lifetime', $lifetime);를 호출 (이 config/session.php에서 찾을 수 있습니다)

'lifetime' => 120 

됩니다 : 당신이 Config::get('session.lifetime')를 호출 할 때이 줄을 그 때문에 그래서,이 설정을 변경하기 위해 내가 app/config/session.php을 수정할 것 (120)

인 기본 값을 반환합니다

'lifetime' => 525600 

기본값은 1 년입니다.

+0

고마워요, @ 칼 그러나 "기억 해요"기능을 동적으로 변경하고 싶습니다. ... – Omkar

+0

그런 경우 쿠키를 만들고 시간을 지정하고 세션의 설정 값을 변경하지 않으려합니다. 'Cookie :: make ('name ','value ', $ lifetime)' – Karl