python token 访问控制_用户登录使用jwt实现token认证,用户模块分离为一个系统。假如有三个子业务系统,分别登录了,怎么控制每个子系统的注销?...

1)思考一下,为什么用 jwt 实现 token,而不是其他的 token 类型?

使用 jwt 做为 token,那么在验证 token 的过程中,不需要和用户模块交互,降低了用户模块的访问压力。但是 jwt 的缺点也很明显,无法revoke token,所以一般会将 token 超时的时间设置的比较短。

2)是否需要 revoke token?

如果需要通过 revoke token 的方式来注销用户,那么 jwt 不是个好的选择。一般选择使用 jwt 作为 token 的话,一般都不会有 revoke token 的需求。因为jwt token 的属性不是保存在用户模块的后台,而是打包到了 token 本身,一旦 token 被签发出去,就无法修改了。

3)如何实现注销,部分注销

基于 token 的系统设计,注销的流程一般是 revoke token,当然,如果只从部分业务模块注销,也可以在用户模块中,对 token 进行标记处理。比如在用户模块中,修改 token 的 scope 属性。

4)认证还是授权?

认证:告诉我你是谁?401

授权:我知道你是谁,但是你是否有权做请求的事情?403

如果采用修改 token 的 scope 来实现部分模块的注销,实际上是取消了用户授权(403),但是 token 本身仍然是有效的,通过 token,仍然能够完成认证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值