您在這裡

重複登入的問題請教

Oscar0410's 的頭像
Oscar0410 在 2008-09-22 (週一) 15:27 發表

我登出以後再登入...會出現兩個我登入在網頁上....
看過很多使用drupal做的網站..好像滿多會出現這問題的..
請問該如何解決呢...
感謝

oscar

我是爬文.找到這模組用..automatic logout
貌似目前有點改善...
不過若是瀏覽噐清除cookie而沒有登出的話...
在登進來就又變成兩個我在線上了...哈哈..
這是drupal的 bug嗎@@..
不會踢掉重複登入的使用者.....
而且本站也會有這情況發生...我常遇到明明登進來了...不過顯示還是0註冊者在線上..= =..
有沒有人遇過這問題且找到方法的....救救命><

之前開發的時候也遇到類似的需求
一個帳號同時間只能容許一個登入的連線
後來的做法是在帳號登入的時候
踢掉同個帳號已登入的使用者
只剩下最後登入那個帳號的連線

關鍵在於 session 的資料表
當 hook_user 的 op 為 login 的時候
表示使用者已經登入
取得登入的使用者的 uid
然後到 session 的資料表內把屬於該 uid 的session 全部登出 (我是 query 直接下 DELETE 的指令把 session 刪掉)
登入過程觸發完 login 階段之後還會觸發 load
然後目前登入中的連線就會自動取得已登入的 session (所以 login 階段可以把帳號底下的所有 session 刪掉 不用作任何判斷去保留登入中的連線的 session)

實際的程式碼寫起來其實很簡單
大概4, 5 行就可以解決