有這樣兩個網站,a.com和b.com,在登入網站a.com後,進入b.com自動登錄,反過來也一樣。總之兩個網站的登錄登出狀態保持同步。 此外,在a.com和b.com之外,還有無數相同的不同網域的網站需要同步登入狀態。
例如多說評論系統,登入一次後,在其他使用多說的網站可以免登陸,這是如何做到的?
SSO(single sign on)
你說的這種情況可以用上面的方案來解決,這種方案有很多實現方式,你可以去查找看一下。
我也舉一個簡單的例子:
當你在某個網站登入的時候,
1) 他取得了你的使用者名稱和密碼,將其發送到後台
2) 經檢驗後由後台產生一個加密認證字元 oauth
3) 然後向前台發送訊息說你成功登入,同時再利用後台腳本向一系列指定的網域下插入相關認證資訊。
這樣你雖然只是在一個網域下登入了,但是其他網域下也有了你的認證資訊。當然上述只是一種實現方案,還有一些
實現方式和這種差的挺大的。
瀏覽器所有保存狀態的方法,都是按網域保存的。以cookie為例,假設你是要在a.com使用b.com的授权登录,当你登录的时候调用了oauth,那么其实你是跳转到b.com进行登录的,那么你的浏览器就会保存b.com登录状态。那么当你在c.com登录的时候,你的浏览器已经保存了b.com的登录状态,那么自然就可以自动登录了。当然,a.com和c.com在浏览器中是无法获取到b.com的狀態的。
a.com
b.com
c.com
給你幾個關鍵字吧,單點登入、document.cookie domain(當然還有其他的方法。)
下面有資源,可以看哈,https://m.toutiao.com/group/6...
簡單的理解:所有的網站都查詢一個只做登入的伺服器
SSO(single sign on)
你說的這種情況可以用上面的方案來解決,這種方案有很多實現方式,你可以去查找看一下。
我也舉一個簡單的例子:
當你在某個網站登入的時候,
1) 他取得了你的使用者名稱和密碼,將其發送到後台
2) 經檢驗後由後台產生一個加密認證字元 oauth
3) 然後向前台發送訊息說你成功登入,同時再利用後台腳本向一系列指定的網域下插入相關認證資訊。
這樣你雖然只是在一個網域下登入了,但是其他網域下也有了你的認證資訊。當然上述只是一種實現方案,還有一些
實現方式和這種差的挺大的。
瀏覽器所有保存狀態的方法,都是按網域保存的。以cookie為例,假設你是要在
a.com
使用b.com
的授权登录,当你登录的时候调用了oauth,那么其实你是跳转到b.com
进行登录的,那么你的浏览器就会保存b.com
登录状态。那么当你在c.com
登录的时候,你的浏览器已经保存了b.com
的登录状态,那么自然就可以自动登录了。当然,a.com
和c.com
在浏览器中是无法获取到b.com
的狀態的。給你幾個關鍵字吧,單點登入、document.cookie domain(當然還有其他的方法。)
下面有資源,可以看哈,https://m.toutiao.com/group/6...
簡單的理解:所有的網站都查詢一個只做登入的伺服器