我需要設置一個主站點,將站點1和站點2嵌入到iframe中,登錄並在其中啓動用戶會話。如何在iframe中啓動有效的用戶會話
站點1(RoR)和站點2(未知框架)已獲得自己的身份驗證(用戶名,密碼,Cookie,通常的框架安全性)。
主站點(PHP)服務器可以直接訪問站點1數據庫,並且我知道密碼散列算法,因此我可以根據站點1驗證主站點的登錄密碼。站點2可以根據需要更改他們的密碼,但是沒有訪問分貝和框架。
不幸的是,我無法在網站1或網站2中更改任何內容。儘管對Site 1有完整的讀取權限,但我只能圍繞它建立。
我已經勾勒出快速圖表,以便更好地說明我的意思/需要:
a busy cat http://gettaxi.me/public_img/help.png
我要開始一個iframe中的用戶會話。站點1的登錄憑證與主站點的登錄憑證相同,因爲它們來自同一個數據庫,站點2的憑證將假定爲相同(如果不是,則可能僅顯示登錄失敗)。
理念名單至今:
我可以記錄登錄憑證到主站點的cookie,並用它來填充的iframe領域。也許存儲加密版本並在需要時解密?但是,在cookie中存儲密碼(甚至是加密的)似乎是荒謬的。
同上,但將其存儲在主站點會話變量中。
跨域餅乾的想法顯得有些蒼白無力,因爲在這裏每個站點都有設置它自己的會話cookie,一個網站不能將其設置爲另一個...
我從來沒有處理與之前的任何跨域類似。所以在我開始編寫像瘋子這樣的東西的時候,可能會也可能不會工作 - 我會向您尋求幫助和建議!你將如何去完成這個?這可能嗎?
其他問題:
不要通過網站1和2的iframe中設置cookie的行爲一樣嗎?它們是否持久?如果我以後在iframe中打開同一個網站,它們會被接受嗎?
如果存儲憑據(cookie/session)是唯一的方法:我將如何填充iframe中的登錄字段並提交表單? javascipt的?一些整潔的GET/POST /重定向技巧?
在此先感謝!
您是否至少在意解釋downvote? –
大多數人都會在「你會怎麼樣」這樣的問題上廢話......除非他們被高代表問過,然後他們完全沒問題。就像對人們進行批評和發表無關話題一樣。有了這個社區的集體編碼智能和這些問題的頻率被看到,然後再一次被濫用,也許權力的某個人會意識到SO的代碼審查部分並沒有吸引人。也許只是一個理解的事情,但如果他們改變了它的話,忠實的人不會拖曳橋樑並打擊人們的手。我們都知道不會發生:) – Mattt
因此,我upvote你先生!我認爲這是一個非常深思熟慮的問題,因爲過去我有類似的任務,所以我很高興看到迴應。 – Mattt