PHPWind 9.0 수 동 인증 코드 차단 백 엔 드 에서 인증 코드 를 닫 았 지만 여전히 표시 되 는 문제 해결

3481 단어 phpwind인증번호
최근 에 제품 을 디자인 할 때 POST 로그 인 PHPWind 가 필요 합 니 다.그러나 PHPWind 9(이하 pw9)자체 가 안전 전략 을 가지 고 있 는 것 으로 알려 져 있 습 니 다.자세 한 내용 은 여러분 이 직접 phpwind 공식 포럼 에 가서 보 실 수 있 습 니 다.보안 정책 의 존 재 는 역장 이 인증 코드 를 닫 더 라 도 로그 인 할 때 인증 코드 를 표시 합 니 다.
POST 로그 인 을 하려 면 인증 코드 가 필요 없 이 이 문 제 를 처리 해 야 하지만 정부 에서 해결 방안 을 제공 하지 않 고 스스로 처리 할 수 밖 에 없다.
우선 phpwind 는 많은 간단 한 php 프로그램 처럼 간단 한 이 페이지 코드 를 대응 하 는 파일 에 넣 지 않 고 매번 방문 할 때마다 wekit.php 를 호출 한 다음 에 wekit 에서 플러그 인,응용,서 비 스 를 호출 한 다 는 것 을 알 아야 한다.분석 이 끝 난 후에 우 리 는 문 제 를 해결 할 수 있다.
Login,로그 인 부분,경로.\src\applications\u\controller 에서 파일 이름 을 알 아 보기 어렵 지 않 습 니 다.LoginController.php 는 로그 인 에 사용 되 는 부분 입 니 다.(이 부분 은 사실 영어 이름 을 보면 알 수 있 습 니 다)
이때 우 리 는 코드 를 붙 였 다.

public function run() {
$this->setOutput($this->_showVerify(), 'verify');//     
$this->setOutput('    ', 'title'); //      
$this->setOutput($this->_filterUrl(false), 'url');
$this->setOutput(PwUserHelper::getLoginMessage(), 'loginWay');
$this->setOutput($this->getInput('invite'), 'invite');
$this->setTemplate('login');
Wind::import('SRV:seo.bo.PwSeoBo');
$seoBo = PwSeoBo::getInstance();
$lang = Wind::getComponent('i18n');
$seoBo->setCustomSeo($lang->getMessage('SEO:u.login.run.title'), '', '');
Wekit::setV('seo', $seoBo);
}
우선 인증 코드 표시 부분 을 차단 해 야 한 다 는 것 은 분명 하 다.
장차

$this->setOutput($this->_showVerify(), 'verify');//     
고치다

//$this->setOutput($this->_showVerify(), 'verify');//     
이로써 우 리 는 인증 코드 표시 의 숨겨 진 부분 을 완 성 했 습 니 다.그러나 이 단계 에 로그 인하 면 인증 코드 의 오 류 를 알 수 있 습 니 다.그래서 우 리 는 인증 코드 가 없 는 것 처럼 수정 해 야 합 니 다.그렇습니다!우 리 는 어떻게 든 인증 코드 를 되 돌려 성공 해 야 한다.
인증 코드 는 서비스 부분(자세 한 내용 은 공식 문서 참조)에 속 합 니 다.파일 은.\src\서비스\verify\srv 에서 도 파일 이름 에 따라 Pw Verify Service.php 가 인증 코드 서 비 스 를 제공 하 는 주요 파일 입 니 다.
이때 나 는 또 코드 를 붙 였 다.

public function checkVerify($verifyType, $code = '') {
return true;
if ($code == '') return false;//       ,       
$types = $this->getVerifyType();
if (!array_key_exists($verifyType, $types)) return false;
$verify = $types[$verifyType];
if (!isset($verify['components']['path'])) return false;
$obj = Wekit::load($verify['components']['path']);
if ($obj->checkVerify($code) === true ) return true;
return false;
}
여기 서 나 는 간단 하고 거 친 것 을 주 었 다.구체 적 인 다른 방법 은 더 이상 말 하지 않 고 자신 을 깊이 연구 하고 싶 으 면 된다.

public function checkVerify($verifyType, $code = '') {
return true; //    true,       
// if ($code == '') return false;
$types = $this->getVerifyType();
if (!array_key_exists($verifyType, $types)) return false;
$verify = $types[$verifyType];
if (!isset($verify['components']['path'])) return false;
$obj = Wekit::load($verify['components']['path']);
if ($obj->checkVerify($code) === true ) return true;
return false;
}
이로써 문 제 는 해결 되 었 다.
위 에서 말 한 것 은 소 편 이 소개 한 PHPWind 9.0 수 동 차단 인증 코드 로 백 엔 드 에서 인증 코드 를 닫 았 지만 여전히 표시 되 는 문 제 를 해결 하 는 데 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 이 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기