2012-02-13 46 views
0

我有2個網站與會員登錄系統。facebook-twitter像登錄系統在php

會員在一個網站註冊。

我希望在網站「A」註冊的所有會員都不需要在網站「B」註冊。 通過使用網站「A」的憑證,會員應該可以在網站「B」上登錄。

它也應該是一個安全的方式。

+0

我該怎麼做才能接受其他問題的答案? – 2012-02-13 09:13:44

+0

在每個答案的分數下方都有一個透明的「[是的支票](http://icongal.com/gallery/image/89444/confirmed_yes_check_ok_accept_positiv_green.png)」。只需點擊最佳答案。謝謝。 – 2012-02-13 09:32:06

+0

好的,我明白了。感謝我現在將標記所有檢查的答案。 – 2012-02-13 09:57:35

回答

1

您可以在網站A上執行所有身份驗證,並使用加密登錄到站點B.因此,如果用戶登錄到站點A,它們將被重定向到第一個站點,併成功進行身份驗證,然後重定向到散列到現場B.

哈希可以是這樣的:

sha1(shared_secret + username + time_rounded_to_2_mins)

這可以很容易地檢查現場B,並且因爲它包含的時間近似,不易被重播攻擊。我做了類似的事情,而且效果很好。 (時間近似允許服務器時鐘有小的變化 - 但是如果它們超出近似水平,它將不起作用。)

+0

我希望所有事情都像下面一樣工作。 如果會員已經登錄網站A,那麼它應該是自動登錄到網站B. 如果會員退出任何網站,那麼它應該登出到這兩個網站。 是否有可能在他們之間共享相同的會話或類似的東西? – 2012-02-13 10:57:50

+0

編號會話基於每個域都有效的cookie(即,mywebsite.com上的會話將永遠不會在myotherwebsite.com上運行)。你在網站A上控制什麼?如果沒有,這將是一個安全漏洞,允許共享憑據或會話。 – 2012-02-13 12:48:29

+0

@RAJESHBANSAL:是的,你可以做到這一點。當站點B重定向到站點A的登錄頁面時,您會檢測到並立即發送經過身份驗證的重定向。當你在任一站點上註銷時,你可以重定向到另一個站點,發送一個不同的身份驗證令牌將它們註銷,然後再重定向回去。 – halfer 2012-02-13 12:58:21

0

最簡單的方法是讓兩個網站共享同一個數據庫。只需在兩個網站中爲用戶使用相同的表格即可:在網站A或B上註冊的用戶將能夠在網站A或B上登錄。

網站B是否有權訪問網站A的數據庫?

+0

網站A無權訪問網站B.網站A不與網站B共享數據庫憑證。 我希望當會員想要登錄時,應該將其重定向到網站A登錄表單,並且在成功登錄後,它應該是作爲授權用戶重定向到網站B,並且它應該能夠訪問該成員的區域。 – 2012-02-13 10:34:27