2012-11-07 53 views
3

我有兩個不同的應用程序在同一臺服務器上運行,一個是基於Java的在Tomcat中運行的spring-social和spring-security,另一個是使用PassportJS作爲安全框架的NodeJS應用程序。使用Tomcat和NodeJS進行單點登錄

這兩個應用程序都被配置爲使用Google OAuth2訪問相同的clientId/secret,因此我可以使用我的Google帳戶登錄其中的每個應用程序。但是,如果我從其中一個更改爲另一個,我需要再次登錄,因爲該會話不存在於另一個應用程序中。

我在看會話cookie,Java應用程序創建JSESSIONID cookie,而Node應用程序創建一個「connect.sid」cookie。也許我可以在每次用戶進行登錄時在每個應用中創建一個會話?或者我必須處理OAuth令牌?

請問您能否指點我正確的方向?我應該使用另一個庫/框架嗎? 預先感謝您。

回答

0

This可能有幫助;它看起來像改變Express/Connect的cookie名稱是相對容易的。現在的問題就是JSESSIONIDconnect.sid的內容是否實際相同。

+1

謝謝,這將是有益的,我會嘗試。但是,我仍然想弄清楚如何在其他應用程序上創建會話。我正在考慮使用共享數據庫來存儲會話數據。這些應用程序已經共享數據庫,所以如果我可以爲這兩個應用程序使用相同的會話ID,則需要管理如何序列化/反序列化每一方的會話。 – javierhe

+0

@javierhe你能解決這個問題嗎?特別是序列化和反序列化 – Basav