私のgrailsアプリケーションでは、ユーザーが正常に登録された後の最初のログインがいつなのか知りたいです。私は春のセキュリティ コア プラグインを使用しています。これを実行する最良の方法は何ですか?
質問する
135 次
1 に答える
2
登録後にユーザーを自動的にログインさせる場合や、ユーザーが登録直後に手動でログインすることがわかっている場合を除き、おそらく各ユーザーで「lastLoginDate」などを永続化する必要があります。次に、その値が空かどうかを確認します (これは初めてのログインです)。それ以外の場合は、ログインするたびにログイン日付を更新します。
このコードは、ログインが成功した後に発生するイベントの 1 つに入れることができます。
コメントに基づいて更新
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 に答える