怪我咯2017-05-19 10:37:37
你要实现的需求应该是唯一性登录。
可以这么处理,请求登录接口,生成一个随机串,存入KV,设定过期时间。这个只会在登录时候触发,假设你的帐号为abc,此时随机串为123456,cache.set('user:abc', '123456')。之后的每次接口请求,都带着随机串,对比cache里面用户对应的随机串。如果随机串发生了改变。那么肯定已经有再登录过。就要强制下线。否则就再刷新随机串的过期时间。这个不影响效率,因为cache不会造成IO瓶颈。
PHPz2017-05-19 10:37:37
唯一登录,应该是靠后台的session来控制的,具体来说就是将登录者的id存在session会话中,比如session["user"],即在登录的时候后台设置 session["user"]=$loginUser( $loginUser是从前端拿到的登录的账号名变量,我这里以php为例子)这样就在该用户访问期间,一直对应着这个用户。如何换成另一个用户,session["user"]会变成另外一个用户的id,所以第一个用户的session会话就会中断了。这样就能保证一个浏览器只能同时登录一个用户了。