Ionic 3/Angular 4.3을 사용하여 기존 웹 응용 프로그램의 모바일 클라이언트를 구축하려고합니다.Ionic 3의 쿠키가 withCredentials를 사용하여 기기에서 전송되지 않음 : true
우리는 세션과 CSRF 보호를 위해 쿠키를 사용하고 있습니다.
import { Injectable } from '@angular/core';
import { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';
import { Observable } from "rxjs";
import { CookieService } from 'ngx-cookie';
import 'rxjs/add/operator/map';
@Injectable()
export class AuthInterceptor implements HttpInterceptor {
constructor(private cookies: CookieService) {}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
var authReq = this.cookies.get('XSRF-TOKEN') ? request.clone({
withCredentials: true,
headers: request.headers.set('X-XSRF-TOKEN', this.cookies.get('XSRF-TOKEN'))
}) : request.clone({ withCredentials: true });
return next.handle(authReq);
}
}
테스트를 브라우저가 좋은만큼 내가 ionic serve address=localhost
(CORS를 우회하기 위해 필요한 주소 플래그) 실행으로 작동에서 : 나는 부착 및 HTTP 요청 토큰 쿠키를 전송하기 위해 다음 HttpInterceptor
을 구현했습니다.
그러나 ionic cordova run android
을 사용하는 Android 기기에서 테스트 할 때 쿠키가 전송되거나 유지되지 않는 것으로 보입니다.
위에서 볼 수 있듯이 withCredentials
에서 true
까지 비슷한 게시물에 대한 대부분의 답변을 제안합니다.
사용자 지정 요청 헤더가 올바르게 요구하는 비행 전 요청을 서버 측 구성 요소가 처리합니까? – CBroe
@CBroe 프로덕션 서버가 아닌 dev 서버의 모든 출처를 허용했습니다. (필자는 장치가 원본'''file'''을 사용하여 액세스 할 때 필연적이라고 읽었습니다) – Jaysbays
https : // stackoverflow .com/a/13997235/1427878 – CBroe