[REDIS] 노드 애플 리케이션 사이에 공유 세션?
REDIS노드 애플 리케이션 사이에 공유 세션?
저는 현재 두 개의 서로 다른 포트에서 실행되는 두 개의 노드 애플 리케이션을 가지고 있지만 같은 백엔드 데이터 저장소를 공유 할 수 있습니다. 하나의 응용 프로그램을 통해로 사용자가 로그인, 자신의 세션을 사용할 수 있으며 다른 응용 프로그램에 로그인에 나타날 때 그래서 나는 두 개의 응용 프로그램 사이의 주 사용자의 세션이 필요합니다. 이 경우, 그 '공개 직면 웹 사이트 및 관리 백엔드에서.
우리의 설정은 다음과 같다 :
세션 물건 (그리고 레디 스)에 대한 설정은 모두 애플 리케이션에 대해 동일합니다 :
session: {
options: {
secret: "my secret",
cookie: {
domain: "mydomain.com",
maxAge:1000*60*60*24
}
},
redis: {
host: 'my host',
maxAge: 86400000,
secret: "my secret"
}
}
이 같은 app.js 외모에서 세션 물건에 대한 설정 :
if ( app.settings.env === "production" ) {
session.options.store = new RedisStore(session.redis);
}
app.use(express.session(session.options));
app.use(passport.initialize());
app.use(passport.session({ secret: 'a different secret' }));
우리가이 애플 리케이션 사이의 쿠키에 동일한 세션 ID를 볼 수 있도록 : 나는 그것을 할 기대.
내 질문은 그래서 : 내가 표현, 레디 스 등 여권을 설정하려면 어떻게해야 당신이 세션은 다른 하위 도메인에 걸쳐 공유 할 수있는?
해결법
-
==============================
1.어쩌면 조금 오래된,하지만이 시간에, 고속 세션 쿠키의 도메인 옵션을 인식 할 수 있습니다. 소식통에 따르면 :
어쩌면 조금 오래된,하지만이 시간에, 고속 세션 쿠키의 도메인 옵션을 인식 할 수 있습니다. 소식통에 따르면 :
function session(options){ var options = options || {} // name - previously "options.key" , name = options.name || options.key || 'connect.sid' , store = options.store || new MemoryStore , cookie = options.cookie || {} ...
그리고이 설정 쿠키입니다 :
var Cookie = module.exports = function Cookie(options) { this.path = '/'; this.maxAge = null; this.httpOnly = true; if (options) merge(this, options); ...
그래서,이 같은 현재 1.10.1 마스터를 위해 작동합니다 :
secret: "my secret", cookie: { domain: "mydomain.com",
-
==============================
2.익스프레스 세션은 따라서 문제를 쿠키에 대한 "도메인"옵션을 인식하지 않는 것 같습니다. 세션 ID를 저장하는 쿠키는 자동으로 각 응용 프로그램에 대한 도메인에 연결되어 있으므로 공유 할 수 없습니다.
익스프레스 세션은 따라서 문제를 쿠키에 대한 "도메인"옵션을 인식하지 않는 것 같습니다. 세션 ID를 저장하는 쿠키는 자동으로 각 응용 프로그램에 대한 도메인에 연결되어 있으므로 공유 할 수 없습니다.
하나의 옵션은 자신의 싱글 사인온 웹 어플리케이션에 걸쳐 공유 세션에 모듈을 작성하는 것입니다. 그것은 매우 초기 실행 순서에 app.use () 선언에 아마 라이브 것이라고 간단하게 (도메인 간 것) 별도의 쿠키, 별도의 SSO 세션 ID를 생성을 생성하고이 새로운 쿠키에 SSO ID를 저장하는 것 . 그 후, 당신은 단순히 크로스 채울 req.session 및 req.sso 세션 필요.
from https://stackoverflow.com/questions/13617471/shared-sessions-between-node-apps by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스에서 중첩 된 자바 스크립트 객체를 저장 - NodeJS를 (0) | 2020.01.07 |
---|---|
[REDIS] jedis를 사용하여 레디 스에 연결할 수 없습니다 (0) | 2020.01.07 |
[REDIS] 자바 스크립트 디자인 패턴 - 원치 않는 비동기 다루기 (0) | 2020.01.07 |
[REDIS] 가게에 가장 좋은 방법은 키를 레디 스 (0) | 2020.01.07 |
[REDIS] 이 DBS와 하나의 인스턴스로 두 레디 스 인스턴스 결합 (0) | 2020.01.07 |