2011-09-19 3 views
1

Google 지원 그룹의 내부 앱을 개발 중입니다. 아이폰 전용 인증 API는 아직 없다. 그래서 여기에 내가하려고하는 것이있다. 우리는 외부 지원 포털을 가지고 있으며, 귀하가 액세스하려고 시도 할 때 Single Sign-On 페이지로 리디렉션됩니다. 싱글 사인온 페이지에는 일반 사용자 이름, 암호 필드 및 일부 숨겨진 입력 필드가있는 양식이 있습니다. 숨겨진 입력 필드의 값은 정기적으로 변경됩니다.인증 문제

예컨대 :

<form method="post" action="/server/sso_auth" name="MLoginForm" autocomplete="off"> 
<input type="hidden" name="v" value="v1.4" /> 
<input type="hidden" name="auth_id" value="5206764149601646385" /> 
<input type="hidden" name="AUTH_REQ" value="<value>" /> 
<input type="hidden" name="sitetoken" value="<value>" /> 

<input type="text" id="Mssousername" name="ssousername" title=" Please enter a Username" maxlength="80" value="" class="Msf-txtbox" tabindex=2/> 

<input type="password" id="Mssopassword" name="password" title=" Please enter a Password" value="" maxlength="255" class="Msf-pwdbox" tabindex=3/> 

나는 성공적으로 내가 AUTH_ID, AUTH_REQ 및 sitetoken 필드를 제공하는 경우에만 앱에 로그인 할 수 있어요 (표준 NSMutableRequest/NSURLResponse 사용).

iPhone 인증 API가있을 때까지는 싱글 사인온 페이지를 읽고 파싱하고 숨겨진 입력 필드의 값을 읽고이를 인증에 사용할 수 있기를 원합니다.

지금 당장 브라우저에서 읽은 다음 복사하여 내 코드에 붙여 넣고 매일 로그인해야합니다.

그 입력 값을 직접 읽을 수있는 방법은 없나요? 페이지의 싱글 사인온으로 바로 가려는 시도는 금지되어 있습니다 ... 리디렉션에서만 작동합니다.

답변

0

NSURLConnection으로 직접 페이지를 읽으면 리디렉션을 수행 할 수 있습니다. 302 리디렉션이 자동으로 수행되도록 만들 수 있으며, META 및 Reload 리다이렉트는 약간의 구문 분석만으로 코드에서 수행되어야합니다. Javascript 콜 백이 더 문제가 될 수 있습니다. 서버가 필요로하는 것과 일치하도록 사용자 에이전트를 지정할 수도 있습니다. 나는 항상 이것을한다.

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)callbackRequest redirectResponse:(NSHTTPURLResponse *)redirectResponse 
: 처리 할 수 ​​

당신이 NSURLConnection 콜백을 사용할 수 있습니다 리디렉션