[請益] 一個想法:Google帳號登入 + Session限制

看板PHP作者 (華哥)時間11年前 (2014/05/31 13:17), 11年前編輯推噓1(1027)
留言28則, 3人參與, 最新討論串1/1
我是新手 已在http://www.000webhost.com/ 申請好帳號 有支援PHP MySQL 我想做一個客戶登入網頁 要結合goole帳號登入 是否我可以使用Session的方式 來限制同一時間 只允許一個google帳號登入? (同一帳號 同時登入的話 就會把前面的踢掉) 謝謝回答! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 222.251.7.36 ※ 文章網址: http://www.ptt.cc/bbs/PHP/M.1401513421.A.A6C.html ※ 編輯: checktime (222.251.7.36), 05/31/2014 13:17:28

05/31 21:13, , 1F
你資料表要能紀錄現在誰正在登入才能這樣限制
05/31 21:13, 1F

05/31 22:18, , 2F
如果是JAVA 實作HttpSessionAttributeListener就可以做到
05/31 22:18, 2F

05/31 22:20, , 3F
不過觀念應該是互通的 new 一個Hashmap紀錄 IP 帳號
05/31 22:20, 3F

05/31 22:21, , 4F
有Session加入的時候檢查是否已經登入 若有 移除舊Session
05/31 22:21, 4F

05/31 22:23, , 5F
新的IP寫入hashmap
05/31 22:23, 5F

05/31 22:26, , 6F
注意要hashmap要singleton 這個技巧的關鍵字 單點登入
05/31 22:26, 6F

05/31 22:30, , 7F
更複雜的情況 登入時更改hashmap中有紀錄的資料
05/31 22:30, 7F

05/31 22:31, , 8F
也要抓得到更改的event進而更新hashmap中資料
05/31 22:31, 8F

05/31 22:32, , 9F
同理 登出也要抓得到event 移除hashmap中的資料
05/31 22:32, 9F

05/31 22:44, , 10F
不然你可以學laravel的機制 登入時session產生的cookie值
05/31 22:44, 10F

05/31 22:45, , 11F
登入時也檢查DB是否有這個remember_token決定要新增剔除
05/31 22:45, 11F

05/31 22:46, , 12F
跟一樓所說的是同種作法
05/31 22:46, 12F

05/31 23:35, , 13F
講那麼多hashmap singleton 不同ip間的session根本不互
05/31 23:35, 13F

05/31 23:36, , 14F
通 php也沒有簡單方法讓所有process共享儲存 請問你要
05/31 23:36, 14F

05/31 23:37, , 15F
怎麼實做hashmap singleton 到頭來跟用db不是一樣
05/31 23:37, 15F

05/31 23:58, , 16F
我兩種方法都說啦 怎麼實作資料結構 design pattern
05/31 23:58, 16F

05/31 23:58, , 17F
個人功力的問題
05/31 23:58, 17F

06/01 00:04, , 18F
JAVA的方法 出自王者歸來 也不是我瞎掰的 PHP你覺得DB好
06/01 00:04, 18F

06/01 00:04, , 19F
你就用也可以阿 沒有人說不行阿
06/01 00:04, 19F

06/01 00:05, , 20F
差別大概就是一個測試的時候可以沒有DB 一個就一定要
06/01 00:05, 20F

06/01 00:06, , 21F
當然 對使用者來說 看起來效果應該是一樣的
06/01 00:06, 21F

06/01 00:17, , 22F
若真的要問PHP實作hashmap等等 我不相信這個google不到
06/01 00:17, 22F

06/01 00:20, , 23F
那根本不是問題 了解這個機制要的workflow才是重點
06/01 00:20, 23F

06/01 00:33, , 24F
一件事情本來就可以有很多實作方法 多了解有何壞處呢?
06/01 00:33, 24F

06/01 02:32, , 25F
你是要限同ip還是限同session?
06/01 02:32, 25F

06/01 02:36, , 26F
上面兩位大大已經回答了限同ip的做法
06/01 02:36, 26F

06/01 02:39, , 27F
如果只是限session,可以在登入時把ga資訊記到session裡
06/01 02:39, 27F

06/01 02:39, , 28F
每次登入檢查就好o.o?
06/01 02:39, 28F
文章代碼(AID): #1JYMNDfi (PHP)
文章代碼(AID): #1JYMNDfi (PHP)