我是新手 已在http://www.000webhost.com/ 申请好帐号 有支援PHP MySQL
我想做一个客户登入网页 要结合goole帐号登入
是否我可以使用Session的方式 来限制同一时间 只允许一个google帐号登入?
(同一帐号 同时登入的话 就会把前面的踢掉)
谢谢回答!
作者: banjmin (HD) 2014-05-31 22:18:00
如果是JAVA 实作HttpSessionAttributeListener就可以做到不过观念应该是互通的 new 一个Hashmap纪录 IP 帐号有Session加入的时候检查是否已经登入 若有 移除旧Session新的IP写入hashmap注意要hashmap要singleton 这个技巧的关键字 单点登入更复杂的情况 登入时更改hashmap中有纪录的资料也要抓得到更改的event进而更新hashmap中资料同理 登出也要抓得到event 移除hashmap中的资料不然你可以学laravel的机制 登入时session产生的cookie值登入时也检查DB是否有这个remember_token决定要新增剔除跟一楼所说的是同种作法
讲那么多hashmap singleton 不同ip间的session根本不互通 php也没有简单方法让所有process共享储存 请问你要怎么实做hashmap singleton 到头来跟用db不是一样
作者: banjmin (HD) 2014-05-31 23:58:00
我两种方法都说啦 怎么实作资料结构 design pattern个人功力的问题JAVA的方法 出自王者归来 也不是我瞎掰的 PHP你觉得DB好你就用也可以阿 没有人说不行阿差别大概就是一个测试的时候可以没有DB 一个就一定要当然 对使用者来说 看起来效果应该是一样的若真的要问PHP实作hashmap等等 我不相信这个google不到那根本不是问题 了解这个机制要的workflow才是重点一件事情本来就可以有很多实作方法 多了解有何坏处呢?
作者: up9cloud (九天) 2014-06-01 02:32:00
你是要限同ip还是限同session?上面两位大大已经回答了限同ip的做法如果只是限session,可以在登入时把ga资讯记到session里每次登入检查就好o.o?