说明
权限的赋予与控制是一个必须处理的问题,尤其是我计划以微服务的方式进行价值实现。结合redis的过期功能,可以实现一套授权及控制机制, 我觉得可以称为「简单时空锁」。简单时空锁可视为一个功能丰富的令牌。
内容
1 授权
用户一般是通过注册的方式实现授权的,但这样有些麻烦,很多用户事实上不想把自己的信息暴露一遍又一遍。可以想象这样一个场景:用户A购买了一个服务,他觉得不错。然后A的朋友B和C突然也想用一下,但是小A并不想把自己的账号密码高速B和C。
也可以想象:小A做了一个服务,他觉得不错,想向小B和小C推广,小A既担心B和C不想注册,又担心B和C用的顺手大批量使用和转赠。这样小A的服务器就受不了了。
2 组成部分
鉴权时确保令牌存在且次数未超限(r.get('key') is not None and int(r.get('key_limit')) > 0
),所以是两个内存变量。在创建令牌时通过三比特编码的模式,确保锁定一个具体的功能(服务&