로그인 오류 횟수와 시간을 세션에 저장합니다. 최대 오류 횟수에 도달하면 로그인할 수 없습니다. 단, 쿠키를 삭제한 후에도 로그인할 수 있습니다. 어떻게 해결해야 하나요? 아니면 로그인 횟수를 제한하는 다른 방법이 있나요? 감사해요!
给我你的怀抱2017-05-31 10:35:27
캐시 제어를 위해 Memcache 또는 Redis를 사용하세요
$key = 로그인 계정
$value = 로그인 실패 횟수
$this->set($key,$value);
高洛峰2017-05-31 10:35:27
귀하와 같은 상황은 글로벌 캐싱을 통해서만 처리할 수 있습니다. 특정 사용자 이름에 대한 로그인 횟수를 제어하려면
1. 키값 캐싱의 경우
통합 데이터 구조 key=value => 사용자 이름={'로그인 수':1}를 사용하고 redis, memcache, mysql을 사용하세요. (캐시 테이블 생성, [키값] 컬럼, 인덱스 해시 키)
$userinfo = $cacheobj->get('username')으로 직접 사용자 정보 획득, 로그인 횟수 확인, 로그인 횟수 증가 $cacheobj -> set('username', $userinfo) 답장
2. 데이터베이스 로그인 정보 테이블 구조에 통합
mysql 사용자 로그인 테이블에 새로운 로그인 번호 열을 추가한 후 sql을 호출하고 획득, 판단, 자동 증가 및 업데이트
시간 위도를 포함하려면
1. 키값 캐싱의 경우
데이터 구조가 사용자 이름 = {'로그인 횟수': 1, '타임아웃 시간': 타임스탬프}로 업데이트되고, 타임아웃이 발생하면 판단에 시간 위도가 추가됩니다. 로그인 횟수는 0
2. mysql이 아닌 키값 캐시(redis, memcache)
Direct $cacheobj->set('username', 'number of logins', timeout)
3. 데이터베이스 로그인 정보 테이블 구조에 통합하세요.
이 경우 시간 초과 열을 추가하세요.
실제 시나리오와 리소스에 따라 이를 구현하는 방법은 셀 수 없이 많습니다.