如果强制使access token失效

三木哥 2016-09-03 05:43:36
客户端请求api采用access token授权,客户端拿到token后,有效期是24小时。
由于各种原因,例如禁用某用户,想强制已授权的token过期失效,禁止该用户登录,请问该如何实现呢?
谢谢。
...全文
1257 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
顺便说一下jwt这种Token是过时失效的,没有强制失效的方法,这是这种Token的设计决定的。
  • 打赏
  • 举报
回复
更正一下是Authenticate服务不是Authorize,Authorize就又是另外一个故事了。
  • 打赏
  • 举报
回复
Token是谁颁发的,失效就应该由谁来定义。而不是由使用方定义失效。 使用方应该在拿到Token后换取Claims来基于ABAC设定访问权限而不是直接使用Token。 建议看看OAuth2.0的一些文档再做authorize服务,你哪怕不实现全部标准起码也应当实现一些基本的功能。 不然你这发个钥匙就能开门的旅馆还不回收钥匙…………
  • 打赏
  • 举报
回复
token本身会在服务器上持久化 所以要判断token是否失效,可以考虑在本地定时同步数据库的token到缓存,然后应用只是简单的跟缓存里token进行判断,如果没有就是失效了
游北亮 2018-12-12
  • 打赏
  • 举报
回复
问题点在于: 判断是否登录的必要条件是什么? 1、如果是用户有Token就算登录,那这个设计太烂了,而且没有什么好的解决办法,只能把过期的Token在服务器上保存为黑名单, 每次用户进入都判断在不在黑名单内。 2、如果Token要在服务器上读取一个数据,存在才算登录,那就简单了,直接删除服务器上的这个Token数据就好了。
stevenjin 2018-12-11
  • 打赏
  • 举报
回复
如果是你生成的话,你会维护一个列表,并可以在再次访问时拦截吧
xieyunyong6400 2018-12-11
  • 打赏
  • 举报
回复
不知道楼主解决没,分享下我的解决方法,重写AuthorizeAttribute 然后判断用户是否需要过期access_token。需要过期就return false。并且清空refresh_token信息。 @以专业开发人员为伍 也许你认为自己很牛逼,但是就是看不惯你那种牛逼哄哄的样子。fuck!
三木哥 2016-10-06
  • 打赏
  • 举报
回复
请问有人知道吗?
三木哥 2016-09-05
  • 打赏
  • 举报
回复
引用 6 楼 xuanbg 的回复:
首先,要使当前Token失效,这个很简单,只要为该用户生成新的Token即可。 然后,你要解决的问题是阻止用户获取Token,这样用户拿不到新的Token,自然就无法正常访问了。
现在的问题是,为该用户生成新的token, 但旧的token依然可以用。 我的目的就是想让生成新的token的同时,让旧的失效。
  • 打赏
  • 举报
回复
引用 5 楼 Sennet 的回复:
2、3分钟? 高手啊! 我已经搞了两三天了,没搞定才上来寻求帮助。
晕死,你白白耽误了3天时间,那是因为硬要修改底层去,所以才浪费了时间。你自己实现一个“判断当前登录有没有被管理员禁止”的代码,是不是写一条查询语句然后跳转到提示页面就行了?用得着3天吗?
software_artisan 2016-09-04
  • 打赏
  • 举报
回复
首先,要使当前Token失效,这个很简单,只要为该用户生成新的Token即可。 然后,你要解决的问题是阻止用户获取Token,这样用户拿不到新的Token,自然就无法正常访问了。
三木哥 2016-09-03
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
[quote=引用 2 楼 Sennet 的回复:] [quote=引用 楼主 Sennet 的回复:] 客户端请求api采用access token授权,客户端拿到token后,有效期是24小时。 由于各种原因,例如禁用某用户,想强制已授权的token过期失效,禁止该用户登录,请问该如何实现呢? 谢谢。
自己实现是可以,我就是想知道OWIN 框架是否已经提供了失效的相应方法 。[/quote] 那就看它的文档。若有就用,若没有就自己花2、3分钟自己搞定。 技术论坛不能当作搜索引擎啊。[/quote] 2、3分钟? 高手啊! 我已经搞了两三天了,没搞定才上来寻求帮助。
  • 打赏
  • 举报
回复
引用 2 楼 Sennet 的回复:
[quote=引用 楼主 Sennet 的回复:] 客户端请求api采用access token授权,客户端拿到token后,有效期是24小时。 由于各种原因,例如禁用某用户,想强制已授权的token过期失效,禁止该用户登录,请问该如何实现呢? 谢谢。
自己实现是可以,我就是想知道OWIN 框架是否已经提供了失效的相应方法 。[/quote] 那就看它的文档。若有就用,若没有就自己花2、3分钟自己搞定。 技术论坛不能当作搜索引擎啊。
三木哥 2016-09-03
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
在asp.net 判断了“登录”之外,你再判断“禁止”呗。自己应该设计业务逻辑,自己实现,不要动不动就去修改人家 asp.net 本身的功能(何况你也修改不了)。
自己实现是可以,我就是想知道OWIN 框架是否已经提供了失效的相应方法 。
三木哥 2016-09-03
  • 打赏
  • 举报
回复
引用 楼主 Sennet 的回复:
客户端请求api采用access token授权,客户端拿到token后,有效期是24小时。 由于各种原因,例如禁用某用户,想强制已授权的token过期失效,禁止该用户登录,请问该如何实现呢? 谢谢。
自己实现是可以,我就是想知道OWIN 框架是否已经提供了失效的相应方法 。
  • 打赏
  • 举报
回复
在asp.net 判断了“登录”之外,你再判断“禁止”呗。自己应该设计业务逻辑,自己实现,不要动不动就去修改人家 asp.net 本身的功能(何况你也修改不了)。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧