2016-12-13 4 views
0

저는 Express 프로젝트 (MEAN)에서 작업하고 있습니다. 나는 myDomain.com에서 나의 로그인/등록 페이지를 가지고 있으며 로그인 할 때 user.myDomain.com으로 사용자를 리디렉션하려고합니다. 세션 저장 모듈을 사용하여 MongoDb에 세션을 저장하고 있습니다. 사용자를 하위 도메인으로 리디렉션 할 수 있지만 세션이 도메인과 하위 도메인 사이에서 작동하지 않으므로 사용자가 로그인 페이지로 리디렉션됩니다. 나는 보았다Express에서 도메인에서 하위 도메인으로 리디렉션 할 때 세션을 활성 상태로 유지하는 방법 js/

https://github.com/jaredhanson/passport/issues/125 Maintaining login session across subdomains in nodejs mongostore

Using Express and Node, how to maintain a Session across subdomains/hostheaders 에서 모든 노력을하지만 난 여전히 손실 오전 thise에 대한 적절한 해결책을 찾을 수있다. 도와주세요.

편집 : 나는 이것을했지만 이드는 나를 도와주지 않았다.

app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cors()); 
app.use(cookieParser()); 
app.use(express.static('../app')); 

app.use(session({ 
    secret:appConfig.SECRET, 
    resave:false, 
    saveUninitialized:true, 
    domain: '.myDomain.com', 
    store: sessionstore.createSessionStore({ 
     type: 'mongodb', 
     host: 'localhost',   // optional 
     port: 27017,    // optional 
     dbName: 'MyDataBase',  // optional 
     collectionName: 'sessions',// optional 
     timeout: 10000    // optional 
     // authSource: 'authedicationDatabase',  // optional 
     // username: 'technicalDbUser',    // optional 
     // password: 'secret'       // optional 
     // url: 'mongodb://user:[email protected]:port/db?opts // optional 
    }), 
    cookie: { 
     path: '/', 
     domain: '.myDomain.com', 
     maxAge: 1000 * 60 * 24 // 24 hours 
    } 
})); 

답변

2

이전에 같은 문제가있었습니다. 아마 당신은이 같은 시도 할 수 :

app.use(session({ 
    cookie: { 
    maxAge: 1000 * 60 * 60 * 24 * 30, 
    domain:'.dreamon.so' // That's what you need. 
    }, 
    store: new RedisStore({ 
    host: settings.redis.HOST, 
    port: settings.redis.PORT 
    }), 
    secret: settings.session.SECRET, 
    resave: true, 
    saveUninitialized: true 
})); 

을하지만 당신은 다른 테스트를하기 전에 브라우저 쿠키를 삭제해야합니다.

+0

감사합니다. 나는 세션 저장 모듈을 사용하여 같은 것을 시도했지만 도움이되지 않았다. 내가 한 것을 찾기 위해 편집을 확인한다. –

+0

브라우저에 저장된 쿠키를 확인했는데 user.myDomain.com 아래에 쿠키가없는 것을 확인 했습니까? 로그인 페이지와 user.myDomain.com으로 리디렉션하는 코드를 붙여주십시오. – YLS

+0

$ window.location = "http://user.myDomain.com을 사용하여 로그인시 노드에서 응답을 얻는 데 클라이언트 쪽에서 사용자를 리디렉션했습니다. –