phonegap: 쿠키 기반 인증(PHP)이 작동하지 않음 [webview]
저는 senscha touch, HTML5, phonegap을 래퍼로 사용하여 모바일 웹앱을 작업하고 있습니다.
저는 PHP-Authentication(Cookie)과 ajax-requests를 사용하고 있습니다.사파리나 크롬에서는 모든 것이 정상적으로 작동하지만, 폰갭(웹뷰)으로 배포된 후에는 더 이상 작동하지 않습니다.
어떤 도움이라도 주시면 감사하겠습니다 :)
보다 자세한 내용은 다음과 같습니다.
내 앱의 모든 데이터는 ajax 요청을 통해 내 서버 구성 요소 "mobile.php"로 로드됩니다.기본 PHP-Auth를 사용하여 사용자를 인증합니다.
- AJAX-Request [사용자 이름, 비밀번호] -> 모바일.php -> 세션 설정(cookie
- 인증이 성공한 경우 다른 모든 요청
일반 사파리 웹사이트와 웹뷰의 차이점은 무엇입니까?
알아냈어요
phonegap_gap.m 파일을 변경하고 init 메서드에 다음을 추가해야 합니다.
- (id) init
{
/** If you need to do any extra app-specific initialization, you can do it here
* -jm
**/
//special setting to accept cookies via ajax-request
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage
sharedHTTPCookieStorage];
[cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
return [super init];
}
웹뷰가 ajax 요청에서 쿠키를 받을 수 있게 해줍니다.
Phonegap AJAX 요청이 콜백을 정상적으로 실행하지 않는 경우 그 이유가 될 수 있습니다.
응답이 쿠키를 설정하려고 할 때 Michael의 수정 작업을 수행하지 않은 경우 (jquery) AJAX 요청이 조용히 실패합니다. 성공도 오류도 없습니다. 서버가 실제로 요청을 수신하고 응답을 보냈음에도 불구하고 콜백이 발생합니다.쿠키에 관심이 없어도 이렇게 해야 하는 것 같습니다.
누군가에게 도움이 되었으면 좋겠습니다.
저는 쿠키에 신경 쓰지 않고 왜 콜백이 작동하지 않는지 알아내기 위해 몇 시간을 보냈습니다.
안드로이드에서도 작동하는 솔루션이 있습니다.
임의 HTTP(S) 요청을 수행하려면 플러그인 https://github.com/wymsee/cordova-HTTP 을 설치합니다.
교체하다XMLHttpRequest
플러그인 대체 기능(cordovaHTTP.get
아니면cordovaHTTP.post
):
cordovaHTTP.post("https://example.com/login", {email: 'xyz@example.com', passwd: "s3cr3t"}, {}, function(response) {
console.log('success');
console.log(response);
}, function(response) {
console.log('failure');
console.log(response);
});
응답에는 상태, 데이터 및response.headers["Set-Cookie"]
, 이름, 값, 도메인, 경로 및 HttpOnly 플래그까지 구문 분석할 수 있습니다;-)
쿠키를 저장할 수 있습니다.LocalStorage
그리고 후속 요청을 보냈습니다(참조).cordovaHTTP.setHeader()
아니면header
의 매개 변수.get
/.post
methods) 데스크톱 브라우저에서 인증된 사용자를 시뮬레이션합니다.
쿠키를 저장하고 삭제하는 가장 좋은 방법은 라이브인 내 앱에서 잘 작동합니다.
쿠키에 값을 저장하려면 다음과
window.localStorage.setItem("key", "value");
쿠키에서 값을 가져오려면 다음과 같이 하십시오.
var value = window.localStorage.getItem("key");
쿠키 값을 삭제하려면
window.localStorage.removeItem("key");
window.localStorage.clear();
언급URL : https://stackoverflow.com/questions/3709315/phonegap-cookie-based-authentication-php-not-working-webview
'programing' 카테고리의 다른 글
AJAX로 RSS 피드 로드하기: Google 피드 API의 대안? (0) | 2023.09.12 |
---|---|
Prisma with mariaDB: strange cache issue (0) | 2023.09.12 |
함수 호출 전에 (공백) 사용 (0) | 2023.09.12 |
MariaDB UPDATE ROW_COUNT (0) | 2023.09.12 |
컴퓨터 저장소에서 인증서 삭제 (0) | 2023.09.12 |