在我的 grails 应用程序中,我想知道用户成功注册后的首次登录时间。我正在使用弹簧安全核心插件。执行此操作的最佳方法是什么?
问问题
135 次
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 回答