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 内置了对 ApplicationEvent
s 和 ApplicationListener
s 的支持。如果您需要它们是异步的,您可以使用 ApplicationEventMulticaster
来“发出”事件,例如见https://www.baeldung.com/spring-events。
例如,在注销时,您可以使用 applicationEventMulticaster.multicastEvent(new OnLogoutCustomEvent(param1, param2))
(其中 applicationEventMulticaster
是自动连接的 ApplicationEventMulticaster
和 OnLogoutCustomEvent
扩展 ApplicationEvent
),然后使用 LogoutCustomListener(实现 ApplicationListener<OnLogoutCustomEvent>
)来处理事件.
对于令牌超时,我认为您需要ScheduledExecutorService
之类的东西来在到期时触发您的逻辑。
【讨论】:
以上是关于Spring Boot JWT Authentication:登录和注销后触发一个方法的主要内容,如果未能解决你的问题,请参考以下文章
带有 spring-boot 和 spring-security 的 JWT
Spring Boot with Spring Boot:将基本身份验证与JWT令牌身份验证相结合[复制]
Spring/Boot - JWT 未在 GET 请求中获取