Spring Boot JWT Authentication:登录和注销后触发一个方法

Posted

技术标签:

【中文标题】Spring Boot JWT Authentication:登录和注销后触发一个方法【英文标题】:Spring Boot JWT Authentication: trigger a method after login and logout 【发布时间】:2019-07-19 01:21:47 【问题描述】:

我正在使用 Spring Boot 实现 REST API,并使用 JWT 和 Oauth 2 保护它。

我对身份验证和生成访问令牌没有任何问题。

现在,我想在用户通过身份验证后执行一个操作,并在访问令牌过期和/或用户注销时执行另一个不同的操作。

如何在 Spring Boot 中登录和注销/访问令牌到期后触发方法?

任何帮助将不胜感激。

【问题讨论】:

也许你可以使用像 Guice 这样的库来完成这项工作。发出登录/注销事件并在需要的地方进行处理。 【参考方案1】:

Spring boot 内置了对 ApplicationEvents 和 ApplicationListeners 的支持。如果您需要它们是异步的,您可以使用 ApplicationEventMulticaster 来“发出”事件,例如见https://www.baeldung.com/spring-events。

例如,在注销时,您可以使用 applicationEventMulticaster.multicastEvent(new OnLogoutCustomEvent(param1, param2))(其中 applicationEventMulticaster 是自动连接的 ApplicationEventMulticasterOnLogoutCustomEvent 扩展 ApplicationEvent),然后使用 LogoutCustomListener(实现 ApplicationListener<OnLogoutCustomEvent>)来处理事件.

对于令牌超时,我认为您需要ScheduledExecutorService 之类的东西来在到期时触发您的逻辑。

【讨论】:

以上是关于Spring Boot JWT Authentication:登录和注销后触发一个方法的主要内容,如果未能解决你的问题,请参考以下文章

带有 spring-boot 和 spring-security 的 JWT

Spring Boot with Spring Boot:将基本身份验证与JWT令牌身份验证相结合[复制]

Spring/Boot - JWT 未在 GET 请求中获取

spring boot + spring security + jwt + React 不工作

spring boot整合JWT例子

如何使用spring boot jwt注销