繼續上一篇文章,繼續談下soap的多網站登陸,跨網域名稱登陸,半夜沒睡著一直想這個問題,2點起來把它變成文字。哈哈
這個東西我還沒具體的的用代碼實現,但是把原理理清楚了,應該是實現起來沒有問題的。
首先 在server端,建立3個函數,一個是登陸 函數 需要參數 使用者名稱,密碼,伺服器,
另外一個是根據user id取得 使用者資料的函數,第三個就是登出了。
用戶端
全存在2中可能,一種是使用者沒有登陸(當然是提供,使用者名稱,密碼,伺服器代碼 讓他去登陸),一種 已經在別的地方登陸過了
(提供登陸user id,伺服器代碼 ,我們取得資料重新把session在新的網域名稱下註冊下)
應該也是2個函數
一個登陸 參數 :使用者名稱,密碼,伺服器代碼
一個是多點登陸 參數 :user id
下面把原理示範下
網域名稱一 使用者沒有登陸 提供使用者名稱,密碼,跟登陸代碼 我們向server端發送一個請求,返回使用者的使用者名稱,跟密碼是否正確,如果正取
同時返回其他的有用的資訊,我們放到session裡,這個時候應該在這個登陸的網站完成了登陸。
使用者從網域名稱一跳轉到網域名稱二 用get的方式跳轉,提供一個user id
網域名稱二 查看網域名稱下沒有使用者的session 資訊,然後看看是否提供了user id 如果提供了,向伺服器發送了一個請求,提供user id號
這個時候,應該順便在發送一個標誌,證明使用者是從這個網站發送的請求,為了加強安全性,不過這個時候還是有可能接受到髒的資料,
因為user id還是暴露給使用者了,可以修改的,但是這樣出現的user id 存在的可能性比較低但是存在。伺服器取得user id後
同時判斷是否是正確的地址發送的請求,如果一切正常,尋找並返回相關的資訊,網域名稱2接受到 server返回的資料,然後註冊session。
具體的情況還是要根據具體的需求去修改的,中間傳遞的user id可以加密,等等的方式處理下,但是這個資料還是會有些問題。
可以採用 裡頭頭幾天發的 ] passport設計一例 中提到的方法 ,還可以 使用一個 2 個庫 或者多個庫共存的方式,只不過,根據不同的網域名稱
下提供不同的資訊而已。
大家仔細研究下,或者好好想想,就能發現這樣完成比用純粹的get方式傳遞的好處了,使用者可以汙染的資料已經很少了。而且關於soap的安全性
現在已經漫漫的規範起來了,如果做好了,我們加上安全措施也是比較簡單的。
書寫完畢,睡覺去了!關於web server的東西應該還有很多,漫漫的體會,會發現更多的東西!特意弄了本書,不過發現網路的資料
現在已經遠遠的超過的鉛字的速度,我今天想找本關於python的書,去了王府井,我沒有找到!
作者:三石
mail:sanshi0815@tom.com