[討論]請問如何做跨網站登入系統?

Webmasters Discussion
站長們到此分享架站甘苦、管理心得等;歡迎大家多多提出意見喔!
(請勿發表任何跟站長經驗分享不相干的文章,違者砍文)

版主: 版主管理群

進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

[討論]請問如何做跨網站登入系統?

文章 進藤光 »

什麼叫做【跨網站登入系統】?很簡單,舉例來說:你在 flickr.com 登入帳號,接著就會看到 yahoo.com 的帳號登入畫面,而且網址也是在 yahoo.com,登入完畢之後,會自動轉回到 flickr.com

換句話說 Yahoo! 有一個跨網站的登入系統,在 flickr.com 登入會看到這樣的網址:

https://login.yahoo.com/

如果登入成功,應該會傳回一些資料給 flickr.com。

請問有沒有現成的 PHP 程式模組也能提供類似的功能?
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
頭像
cloudsnow30
星球公民
星球公民
文章: 246
註冊時間: 2005-03-27 03:38
來自: 稜鏡之森       狀態: 冬眠喵型:想回頭擁抱PHPBB
聯繫:

Re: [討論]請問如何做跨網站登入系統?

文章 cloudsnow30 »

進藤光 寫:什麼叫做【跨網站登入系統】?很簡單,舉例來說:你在 flickr.com 登入帳號,接著就會看到 yahoo.com 的帳號登入畫面,而且網址也是在 yahoo.com,登入完畢之後,會自動轉回到 flickr.com

換句話說 Yahoo! 有一個跨網站的登入系統,在 flickr.com 登入會看到這樣的網址:

https://login.yahoo.com/

如果登入成功,應該會傳回一些資料給 flickr.com。

請問有沒有現成的 PHP 程式模組也能提供類似的功能?
小妹不才,,,
兩個論壇共用會員資料不就好了嗎 0.0?
之前好像有人提過只要登入其中一個論壇的帳號,可以同時登入2個論壇的東東

不過還是不懂..我在flickr.com 登入帳號就好,幹嘛要跑去yahoo的登入畫面,然後再繞路回到flickr.com ,好像有點多此一舉耶...

還是我理解錯誤了呢 0.0?

我笨笨見諒~
一個容易三心二意的女人...著迷於網站的製作,但又不專精...
從html.到asp,再跳cgi...一個因緣際會,邂逅了php....
才知自己的能力是多麼的膚淺~~~~Orz

近況:站長的心變成浮動ip.不定時罷工中.= =
目標:努力活下去,....^^"
-----------------------------------------
● (目前是租用虛擬主機架站)
++稜鏡之森++Prism Forest++
Ayano's Style Test Forum-綾乃的風格測試站
私の気まぐれな世界

++++自家主機使用++++
●架設主機作業系統:Windows11
●快速架站程式:XAMPP for Windows
●您的上網方式:ADSL 1G/600M
●您安裝的程式:Apache 2.4.58 + PHP 8.2.12 + MariaDB 10.4.32 + phpMyAdmin-5.2.1
●錯誤代碼及狀態:如說明
twu2
星球普通子民
星球普通子民
文章: 18
註冊時間: 2002-07-24 10:15
來自: Eastwood City
聯繫:

文章 twu2 »

那是同一家公司的系統才做的到.
利用 cookie 存放認證得到的 ticket 資料, 只要該 ticket 未過期就表示已經登入. 或否就轉回登入的頁面.

這個應該與 php 沒什麼關係.
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

是嗎?照這樣來說只要 Javascript 就能辦到?有這麼神奇嗎? :roll:
我是有想過直接用 javascript 讀取 cookie,不過光是讀到 cookie 內容就能表示 user 有在 yahoo 登入帳號成功?Flickr 就直接當作已經登入過了?這兩個網站的 session 不會一樣吧?這樣也行?? :roll:
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

Re: [討論]請問如何做跨網站登入系統?

文章 進藤光 »

cloudsnow30 寫:不過還是不懂..我在flickr.com 登入帳號就好,幹嘛要跑去yahoo的登入畫面,然後再繞路回到flickr.com ,好像有點多此一舉耶...

還是我理解錯誤了呢 0.0?

我笨笨見諒~
應該是你根本不熟 Flickr!
請先登出 flickr 與 yahoo,然後直接開這個網址:

http://www.flickr.com/photos/upload/

請問接下來你會看到啥?
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
twu2
星球普通子民
星球普通子民
文章: 18
註冊時間: 2002-07-24 10:15
來自: Eastwood City
聯繫:

文章 twu2 »

進藤光 寫:是嗎?照這樣來說只要 Javascript 就能辦到?有這麼神奇嗎? :roll:
我是有想過直接用 javascript 讀取 cookie
javascript 是 client 端的程式, 怎麼可能做到.
browser 會把 cookie 也傳給 server 端的程式. server 端的程式利用傳入的 cookie 來檢查.
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

twu2 寫:那是同一家公司的系統才做的到.
利用 cookie 存放認證得到的 ticket 資料, 只要該 ticket 未過期就表示已經登入. 或否就轉回登入的頁面.
其實...用 OpenID 就好了 :mrgreen:

--
喔...就某些方面來說,用 OpenID 也差不多是那樣一回事啦 :-D
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

Re: [討論]請問如何做跨網站登入系統?

文章 chiouss »

cloudsnow30 寫:不過還是不懂..我在flickr.com 登入帳號就好,幹嘛要跑去yahoo的登入畫面,然後再繞路回到flickr.com ,好像有點多此一舉耶...
Google("Single Sign On")
http://en.wikipedia.org/wiki/Single_sign_on

如果今天 Yahoo! 的 n 種服務都要用一組帳號密碼登入,那會不會太累了一點?就算是同一組帳號密碼好了,n 種服務都要登入一次,會不會讓人發瘋啊?
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

進藤光 寫:我是有想過直接用 javascript 讀取 cookie,不過光是讀到 cookie 內容就能表示 user 有在 yahoo 登入帳號成功?Flickr 就直接當作已經登入過了?這兩個網站的 session 不會一樣吧?這樣也行?? :roll:
假設我存一個 cookie 內容是你在 yahoo 的帳號和 password,今天要是 flickr 拿出這個 cookie 再去跟資料庫比對,發現這組 username/password 是正確的,那是不是可以當作是你已經登入了呢?

登入時效的問題可以交給 cookie 本身的 expire 和配合登入時寫入 login time 到 database 來判斷是否需要重新登入。

當然我舉的例子有很明顯的安全性漏洞就是了 :P
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

twu2 寫:
進藤光 寫:是嗎?照這樣來說只要 Javascript 就能辦到?有這麼神奇嗎? :roll:
我是有想過直接用 javascript 讀取 cookie
javascript 是 client 端的程式, 怎麼可能做到.
他大概是想說用 javascript 去挖機器的 cookie 出來就可以判斷登入與否了,用不到 PHP 這個意思吧?其實也沒錯啦!

但是 javascript 可以挖到 cookie 卻沒辦法和 server 驗證,你的程式如果只用 cookie 存在與否來判斷是否登入,那將會是個很大的漏洞。
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

對啊~更何況還有 Opera 這種竟然可以直接編輯 cookie 內容的瀏覽器,要騙過網站還不容易? :mrgreen:

純 Javascript 應該不太可能,我猜想 Flickr 把 Yahoo! 登入網頁變成一個副程式,直接呼叫這個副程式認證,確定可以登入就回到 Flicrk。至於登出的問題,其實我常常遇到我已經在 Yahoo! 登出,但是 Flickr 卻還是登入照樣能看到照片內容!顯然他們的機制還沒有整合得很好,但至少能用!

至於會員共用的 MOD 其實只能共用資料,登出、登入應該還是沒辦法搞定。phpBB 會為每一個登入的帳號建一個 sesion,另外一個 phpBB 沒有建立過 session 就沒辦法視同已經登入,除非這部份也經過 MOD 改過。

這個議題看似簡單,我想應該會牽涉到不少技術層面,連 Yahoo! 跟旗下併購的系統都不能完全整合(無名小站我沒測試),難度應該滿高的。

我的想法是... 最好 phpBB、XOOPS、Joomla... 這一堆網站系統都經過一個統一的帳號管理網站 (也許後端還可以通 LDAP) 大家只要通過一個網站認證,不管你用哪個系統架站,都不需要 user 再重新註冊! :mrgreen: :mrgreen: :mrgreen:
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
Meowmeow
星球公民
星球公民
文章: 221
註冊時間: 2006-03-01 17:03
來自: 台北
聯繫:

文章 Meowmeow »

YouTube現在都能跟Google用同個帳號了。
Chita,一個野性獸圖聖殿。
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

進藤光 寫:對啊~更何況還有 Opera 這種竟然可以直接編輯 cookie 內容的瀏覽器,要騙過網站還不容易?
所以 cookie 裡面塞的東西要經過處理,判斷的條件也不能太簡單。你說的問題還是小事,比較大的問題是 XSS。
進藤光 寫:這個議題看似簡單,我想應該會牽涉到不少技術層面,連 Yahoo! 跟旗下併購的系統都不能完全整合(無名小站我沒測試),難度應該滿高的。
有名大站?那不用測了,雅虎短期內沒打算把有名大站整合進去的樣子
進藤光 寫:我的想法是... 最好 phpBB、XOOPS、Joomla... 這一堆網站系統都經過一個統一的帳號管理網站 (也許後端還可以通 LDAP) 大家只要通過一個網站認證,不管你用哪個系統架站,都不需要 user 再重新註冊! :mrgreen: :mrgreen: :mrgreen:
用 LDAP 只是解決 username/password 不用開好多組的問題,基本上就和你所有程式都指到資料庫裡面同一個 username/password 是一樣的道理。今天的重點是要能在一個網站登入一次就不需要在其他網站重複登入,這除了後端資料整合以外還需要能夠判斷是否登入的程式,你似乎還沒弄懂這方面的問題喔... :mrgreen:
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

不是這樣,你誤會了,網站系統雖然都是給網友路人申請使用,但也有公司內部使用需求,如果支援 LDAP,就可以用 AD 之類的直接登入,這對公司用途來說會滿方便的。不過這不是重點,所以我才說後端能通 LDAP 更好,不能也無所謂。

現在是每個討論區、CMS都各自發展獨立的登入系統,這也沒什麼不對,只是如果能有一個整合的登入系統,站長不管想要增加哪種系統,會員也不用重新註冊,這對站長來說,其實是滿不錯的一件事! :mrgreen:

看似辦不到的事情,能有某種採用 XAJAX 架構還是什麼東東的程式系統可以辦到嗎? :roll:

這麼多網站系統,好像沒有一個是專門擔任類似 LDAP 的工作,專門提供給其他討論區、CMS 管理與認證帳號使用? :mrgreen:
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

進藤光 寫:這麼多網站系統,好像沒有一個是專門擔任類似 LDAP 的工作,專門提供給其他討論區、CMS 管理與認證帳號使用? :mrgreen:
我前面說了阿!OpenID :mrgreen:
回覆文章

回到「站長交流」