192.168.1.1 登錄入口 如何使用Cookie實現跨域的單點登錄?
如何使用Cookie實現跨域的單點登錄?在指定的域中寫入所需的cookiecreate cookie回應。餅干(“MyCookie”).Expires=日期365回應。餅干(“MyCookle”)。域
如何使用Cookie實現跨域的單點登錄?
在指定的域中寫入所需的cookie
create cookie回應。餅干(“MyCookie”).Expires=日期365回應。餅干(“MyCookle”)。域=“mydomaln.com網站"
回應。餅干(“MyCookle”)(“Username”)=strUsername回應。餅干(“MyCookle”)(“Password”)=strPassword
讀寫cookie非常簡單。上面的代碼創(chuàng)建一個cookie并設置cookie的屬性:域、過期時間和存儲在cookie中的其他值。這里,strusename和strpassword是在前面某處設置的變量。然后,通過下面的語句讀入cookie。
“讀取cookie
datexpdate=請求Cookies(“MyCookie”)
標準域=請求Cookies(“MyCookle”).Domain
結構名稱=請求Cookies(“MyCookle”)(“Username”)
strPassword=請求Cookies(“MyCookie”)(“Password”)
首先,您需要了解大多數會話都是實現的通過cookies,所以跨域會話是不可能的。
但是跨域身份驗證仍然可以用OAuth和其他方法實現,但不建議這樣做。OAuth項目似乎還沒有完成,每個人都在使用它。
第二,雖然跨域有點困難,但同一域中的不同項目可以共享會話,CAS并不復雜。您可以在GitHub上搜索redis會話。只有一個源代碼文件。提供了redis下session的nodejs實現,即設置redis的超時來模擬session的超時。
第三,也可以跨域,即登錄時使用iframe在多個域中同時寫入cookie,注意瀏覽器差異。
總之,你的想法是完全可行的。
session跨域共享怎么實現?
登錄后,登錄信息將保存到cookie中。同時,服務器中的用戶被設置為登錄狀態(tài)??缬蚝?,訪問cookie是否存在。
如果存在,請將其與數據庫中的登錄狀態(tài)進行比較。如果處于登錄狀態(tài)。如果頁面處于退出狀態(tài),則直接訪問該頁面。跳轉到登錄頁。當所有頁面關閉時,您必須重新設置登錄狀態(tài)以退出
PHP有很多方法可以解決跨域問題。常見的方法如下:
這是通過使用<script></script>標記實現的。示例如下:
這使用了<script></script>標記的兩個特性,一個是支持跨域問題,另一個是執(zhí)行JS代碼。
服務器中沒有跨域問題。因此,可以讓客戶端程序先訪問域名下的PHP程序,然后讓PHP程序通過服務器請求第三方程序。這也可以解決跨域問題。