作者checktime (华哥)
看板PHP
标题[请益] 一个想法:Google帐号登入 + Session限制
时间Sat May 31 13:16:58 2014
我是新手 已在
http://www.000webhost.com/ 申请好帐号 有支援PHP MySQL
我想做一个客户登入网页 要结合goole帐号登入
是否我可以使用Session的方式 来限制同一时间 只允许一个google帐号登入?
(同一帐号 同时登入的话 就会把前面的踢掉)
谢谢回答!
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 222.251.7.36
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/PHP/M.1401513421.A.A6C.html
※ 编辑: checktime (222.251.7.36), 05/31/2014 13:17:28
1F:→ MOONRAKER:你资料表要能纪录现在谁正在登入才能这样限制 05/31 21:13
2F:推 banjmin:如果是JAVA 实作HttpSessionAttributeListener就可以做到 05/31 22:18
3F:→ banjmin:不过观念应该是互通的 new 一个Hashmap纪录 IP 帐号 05/31 22:20
4F:→ banjmin:有Session加入的时候检查是否已经登入 若有 移除旧Session 05/31 22:21
5F:→ banjmin:新的IP写入hashmap 05/31 22:23
6F:→ banjmin:注意要hashmap要singleton 这个技巧的关键字 单点登入 05/31 22:26
7F:→ banjmin:更复杂的情况 登入时更改hashmap中有纪录的资料 05/31 22:30
8F:→ banjmin:也要抓得到更改的event进而更新hashmap中资料 05/31 22:31
9F:→ banjmin:同理 登出也要抓得到event 移除hashmap中的资料 05/31 22:32
10F:→ banjmin:不然你可以学laravel的机制 登入时session产生的cookie值 05/31 22:44
11F:→ banjmin:登入时也检查DB是否有这个remember_token决定要新增剔除 05/31 22:45
12F:→ banjmin:跟一楼所说的是同种作法 05/31 22:46
13F:→ MOONRAKER:讲那麽多hashmap singleton 不同ip间的session根本不互 05/31 23:35
14F:→ MOONRAKER:通 php也没有简单方法让所有process共享储存 请问你要 05/31 23:36
15F:→ MOONRAKER:怎麽实做hashmap singleton 到头来跟用db不是一样 05/31 23:37
16F:→ banjmin:我两种方法都说啦 怎麽实作资料结构 design pattern 05/31 23:58
17F:→ banjmin:个人功力的问题 05/31 23:58
18F:→ banjmin:JAVA的方法 出自王者归来 也不是我瞎掰的 PHP你觉得DB好 06/01 00:04
19F:→ banjmin:你就用也可以阿 没有人说不行阿 06/01 00:04
20F:→ banjmin:差别大概就是一个测试的时候可以没有DB 一个就一定要 06/01 00:05
21F:→ banjmin:当然 对使用者来说 看起来效果应该是一样的 06/01 00:06
22F:→ banjmin:若真的要问PHP实作hashmap等等 我不相信这个google不到 06/01 00:17
23F:→ banjmin:那根本不是问题 了解这个机制要的workflow才是重点 06/01 00:20
24F:→ banjmin:一件事情本来就可以有很多实作方法 多了解有何坏处呢? 06/01 00:33
25F:→ up9cloud:你是要限同ip还是限同session? 06/01 02:32
26F:→ up9cloud:上面两位大大已经回答了限同ip的做法 06/01 02:36
27F:→ up9cloud:如果只是限session,可以在登入时把ga资讯记到session里 06/01 02:39
28F:→ up9cloud:每次登入检查就好o.o? 06/01 02:39