2017-05-17 3 views
0

하나의 사용자 이름을 사용하여 로그인을 종료하려면 mongodb에서 세션을 저장하고 세션을 삭제하고 mysql 사용자 테이블에서 auth_key를 변경하면 해당 사용자가 사이트를 종료합니다. 내가 확인 인증 키 모든 사용자가 나를 기억 변경할 때, 던져 사이트를 로그 아웃, 나는 (web.php)세션 및 쿠키 (auth_key)로 사용자 종료

'session' => [ 
 
'class' => 'yii\mongodb\Session', 
 
'writeCallback' => function($session) 
 
{ 
 
    return [ 
 
      'user_id' => Yii::$app->user->id, 
 
      'agent' => Yii::$app->request->getUserAgent(), 
 
      'ip' => Yii::$app->request->getUserIP(), 
 
      'auth_key' => Yii::$app->security->generateRandomString(), 
 
     ]; 
 
     } 
 
],
나는이 방법으로 인증 키를 저장 처음에는 다른 방법 에서 세션 DB를 MongoDB의에서 auth_key를 저장

그러나 이것은 페이지를 새로 고칠 때마다 문제가 있습니다. auth_key는 재생성됩니다.

다른 방법으로 로그인하면 메소드를 덮어 쓰지 만 문제는 auth_key가 저장되어 있지만 시간이 아닌 경우가 있습니다.

이 문제를 방지하려면 어떻게해야합니까? 그리고이 방법에 대한 당신의 제안은 무엇입니까? 맞습니까?

답변

0

writeCallback에 auth_key를 사용하면 안됩니다. 모든 페이지 새로 고침을 다시 생성합니다.

+0

만료 시간도 각 페이지 새로 고침에서 생성되며, 어떻게 중지합니까? – Avinash