我正在开发我的企业SaaS应用程序,我的一些用户希望按照每个席位的方式收取费用。
我想知道如何确保访问权限确实有限。我现在可以看到,具有相同登录名/密码的人同时登录不同的IP地址,不同的用户代理,即使该公司只支付了一个席位。
从业务和技术角度实施限制的最佳方法是什么?我不想太严格,同时我希望公司支付他们实际需要的座位数。
答案 0 :(得分:0)
不要按用户代理进行过滤,我认为会过于严格,有些人可能会安装各种浏览器。通过IP过滤也可能很棘手,一些用户可能拥有定期更改的动态IP。
我的一个想法是强制用户安装浏览器扩展,浏览器扩展可以从操作系统上的某些内容生成唯一ID。也许使用硬盘卷号或Windows串行密钥,任何对该计算机而言都是唯一的。
拥有此唯一ID后,每次用户登录时都会在后端跟踪中使用它。如果用户超过一定数量的席位,您可以阻止用户帐户或先联系他们。
允许用户有一定的自由度也是一个好主意,这样如果他们有一个座位,那么后端将允许一个月(滚动期)可能有2个座位,这将是一个案例用户购买新电脑或安装新硬盘。
答案 1 :(得分:0)
使用IP似乎是一个坏主意 - 局域网中的人(通常)都拥有相同的IP。
假设PHP没有API来访问不同于当前检查会话的检查会话 - 一个想法是:
然后,当您收到新请求时,请计算其他活动有多少
last activity >= current session start
last activity >= now - session TTL
(仅在无法及时修剪过期的会话时才需要)那应该给你占用的座位数。
请注意,在剩余用户登录之后 看不出这个问题,因为你不确切知道一个座位何时空缺(好吧,你可能会说它只在会议结束时才会空缺,但这似乎不公平)。