1

在我的 grails 应用程序中,我想知道用户成功注册后的首次登录时间。我正在使用弹簧安全核心插件。执行此操作的最佳方法是什么?

4

1 回答 1

2

除非您在注册后自动登录用户,或者知道用户将在注册后立即手动登录,否则您可能必须为每个用户保留“lastLoginDate”之类的内容。然后只需检查该值是否为空(这是他们第一次登录),否则只需在每次登录时更新登录日期。

您可以将此代码放在成功登录后触发的事件之一中。

根据评论更新

grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
   // fired after successful authentication
   // and AFTER user info provided to SpringSecurityService

   // to get currentUser, you can use the following
   def springSecurityService = appCtx.getBean("springSecurityService")
   def user = springSecurityService.currentUser
   ...
}


or

grails.plugins.springsecurity.onAuthenticationSuccessEvent = { e, appCtx ->
   // fired after successful authentication
   // and BEFORE user info provided to SpringSecurityService
   // (e.g. springSecurityService.currentUser == null)
}

更多信息可以在事件下的SpringSecurity 文档中找到。

于 2013-06-27T16:21:25.490 回答