는 응답 핸들러에 게시 그냥 값이다 : sig_response = self.get_argument("sig_response") # for example (if using Tornado: http://www.tornadoweb.org/en/stable/documentation.html)
듀오 웹 : 다음은 파이썬을 사용하는 예입니다. iframe에 표시 할 URL을 만들 때 post_action
매개 변수가 있습니다. 그것은 iframe에서 돌아 오는 사용자를 처리하는 응용 프로그램의 끝점입니다.
모조에 경로를 만들어야합니다. 여기에서 POST 본문에서받는 매개 변수를 확인해야합니다. 폼 데이터 나 JSON과 같은 다른 것인지 알 수 없습니다. 그것은 실제로 문서에서 말하지 않습니다. 난 당신이 매개 변수를 덤프하고, 그것을 표시하지 않는 경우, 전체 요청 본문을 덤프하는 것이 좋습니다.
sig_response
매개 변수를 지정하면 the verify_response
function에 전화하여 듀오의 라이브러리에서 제공하는 반환 값을 확인해야합니다.
아직 수행하지 않았다면 SDK를 https://github.com/duosecurity/duo_perl으로 가져옵니다. 전체 배포판이 아닙니다. 모든 것을 복제하거나 자신의 github에서 pm 파일을 다운로드하여 응용 프로그램의 lib
디렉토리에 넣을 수 있습니다. 그런 다음 use
다른 모듈을 좋아할 것입니다. 아무 것도 내보내지 않으므로 verify_response
함수를 호출하려면 정규화 된 이름을 사용해야합니다.
모든 것은이 검증되지 않은 코드처럼 보일 수 있습니다
post '/duo_handler' => sub {
my $c = shift;
my $sig_request = $c->param('sig_response');
my $user = DuoWeb::verify_response($ikey, $skey, $akey, $sig_request);
if ($user) {
# logged in
} else {
# not logged in
}
};
면책 조항 :이 서비스를 모른다. 필자가 링크 한 문서를 빨리 읽었을뿐 아니라 실제로 CPAN에 넣어야하는 Perl SDK를 살펴 보았습니다.
관련있는 CPAN의 https://metacpan.org/pod/Net::Duo 모듈도 있지만 공식은 아닙니다. 나는 그것이 무엇을하는지 익숙하지 않기 때문에 그것이 무엇을하는지 모른다. – simbabque