Topics 프로젝트 에서 크로스 도 메 인 쿠키 가 발생 한 문제
https://github.com/tiye/topics-crx 서버 POST 책 갈피, 웹 페이지 에서 로그 인 한 Cookie 사용
크로스 필드
이러한 구조 에 문제 가 있 을 수 있 습 니 다. 주로 도 메 인 을 넘 어 쿠키 를 공유 하 는 문제 입 니 다.
cors
모듈 로 생 성 된 크로스 도 메 인 Headers 를 직접 사용 하면 됩 니 다.https://github.com/troygoode/node-cors express = require 'express'
cors = require 'cors'
app = express()
app.use cors()
그러나 여기 서 문제 가 발생 할 수 있 습 니 다.
cors
예 에서 origin 은 길 을 정의 할 때 죽 었 습 니 다. 제 개인 적 인 책 갈 피 는 안전성 에 대한 요구 가 높 지 않 고 개발 이 편리 하지 않 아서 유연성 이 부족 합 니 다.또한,
Access-Control-Allow-Credentials
가 true
일 때 origin 은 *
여러 origin 과 쿠키 를 동시에 만족 시 키 기 위해 요청 헤드 를 스스로 처리 하 는 데 오래 걸 렸 습 니 다. 하지만 회사 에서 이 필요 한 코드 를 보 았 기 때문에 마지막 방안 은 이 렇 습 니 다.모든 요청 은 미들웨어 를 한 번 걸 어서 headers 의 도 메 인 이름 을 꺼 내 CORS 머리 에 씁 니 다.
app = express()
app.all '*', (req, res, next) ->
if req.headers.origin?
res.header("Access-Control-Allow-Origin", req.headers.origin)
res.header("Access-Control-Allow-Credentials", true)
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS')
# ...
res.header("Access-Control-Allow-Headers", "X-Requested-With, AUTHORIZATION")
next()
클 라 이언 트 가 시작 하 는 모든 도 메 인 요청 은 코드 가 자발적으로 쿠키 를 추가 하도록 설정 해 야 합 니 다.
$.ajax
url: "#{apiHost}#{url}"
type: type
data: data
xhrFields:
withCredentials: true
비교적 거 친 방법 을 찾 았 습 니 다. 모든 OPTIONS 는 데 이 터 를 직접 되 돌려 달라 고 요 청 했 습 니 다. 그러면 미들웨어 가 headers 에 적 힌 CORS 정 보 는 클 라 이언 트 로 돌아 갑 니 다.
app.options '*', (req, res) ->
res.json status: yes
topics-api.tiye.dev
을 모 의 했 기 때문에 Cookie domain 을 고려 해 야 합 니 다.코드 를 추가 하여
req.headers.origin
쿠키 를 생 성 하 는 domain 입 니 다.manifest.json
의 permissions
설정 이 잘 되면 Chrome 확장 에서 일부 url 을 실행 하면 플러그 인 에 접근 할 수 있 고 안전성 을 고려 하지 않 습 니 다. 저 는 http://*/
을 사 용 했 지만 효력 이 발생 하지 않 으 면 chrome.cookies.get
방법 도 쿠키 를 얻 을 수 있 습 니 다.이상 은 제 가 Topics 프로젝트 에서 만난 쿠키 에 관 한 질문 입 니 다.
블 로그 홈 페이지 로 돌아 가기:http://blog.tiye.me
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
실행 전 요청에 대한 응답이 액세스 제어 검사를 통과하지 못함: 'Access-Control-Allow-Origin'안녕하십니까 내 문제 메인 파일에 cors 패키지를 추가했습니다. index.js front=end 파일 게시 요청 내 백엔드 파일 실행 포트 = 3001 때문에 포트에서 실행되는 프런트 엔드 파일 = 3000 **...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.