2016-12-13 17 views
0

でドメインからサブドメインにリダイレクトするときにセッションをアクティブにする方法私はExpressプロジェクト(MEAN)で作業しています。私はmyDomain.comで私のログイン/登録ページを持っており、ログイン時にuser.myDomain.comにそのユーザーをリダイレクトしたいと思う。私はセッションストレージモジュールを使用してMongoDbにセッションを格納しています。ユーザーをサブドメインにリダイレクトすることはできますが、セッションはドメインとサブドメインの間で機能しないため、ユーザーをログインページにリダイレクトします。 私が見て、Express js/

Using Express and Node, how to maintain a Session across subdomains/hostheaders https://github.com/jaredhanson/passport/issues/125 Maintaining login session across subdomains in nodejs mongostore

からすべてを試してみましたが、私はまだ失われていますし、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を使用して、ログイン時にノードからの応答を取得する際にクライアント側からユーザーをリダイレクトしました。 –

関連する問題