diff options
author | Frédéric Guillot <fred@miniflux.net> | 2018-10-22 20:49:10 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2018-10-22 20:49:10 -0700 |
commit | dc8668b9040ad99d30dd32ae7fe5b51b68ec8e99 (patch) | |
tree | 32c13a71804410838222139510a79fc84e93b88b | |
parent | f06a19814bde280277d7e7309d83a4ac538840f2 (diff) |
Improve logging for OAuth2 callback
-rw-r--r-- | oauth2/profile.go | 8 | ||||
-rw-r--r-- | ui/oauth2_callback.go | 8 |
2 files changed, 14 insertions, 2 deletions
diff --git a/oauth2/profile.go b/oauth2/profile.go index b43f07c..471b478 100644 --- a/oauth2/profile.go +++ b/oauth2/profile.go @@ -4,9 +4,17 @@ package oauth2 // import "miniflux.app/oauth2" +import ( + "fmt" +) + // Profile is the OAuth2 user profile. type Profile struct { Key string ID string Username string } + +func (p Profile) String() string { + return fmt.Sprintf(`ID=%s ; Username=%s`, p.ID, p.Username) +} diff --git a/ui/oauth2_callback.go b/ui/oauth2_callback.go index feaccc4..0aecd1c 100644 --- a/ui/oauth2_callback.go +++ b/ui/oauth2_callback.go @@ -19,6 +19,7 @@ import ( // OAuth2Callback receives the authorization code and create a new session. func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) { + clientIP := request.ClientIP(r) printer := locale.NewPrinter(request.UserLanguage(r)) sess := session.New(c.store, request.SessionID(r)) @@ -57,6 +58,8 @@ func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) { return } + logger.Info("[OAuth2] [ClientIP=%s] Successful auth for %s", clientIP, profile) + if request.IsAuthenticated(r) { user, err := c.store.UserByExtraField(profile.Key, profile.ID) if err != nil { @@ -104,13 +107,14 @@ func (c *Controller) OAuth2Callback(w http.ResponseWriter, r *http.Request) { } } - sessionToken, _, err := c.store.CreateUserSession(user.Username, r.UserAgent(), request.ClientIP(r)) + sessionToken, _, err := c.store.CreateUserSession(user.Username, r.UserAgent(), clientIP) if err != nil { html.ServerError(w, r, err) return } - logger.Info("[Controller:OAuth2Callback] username=%s just logged in", user.Username) + logger.Info("[OAuth2] [ClientIP=%s] username=%s (%s) just logged in", clientIP, user.Username, profile) + c.store.SetLastLogin(user.ID) sess.SetLanguage(user.Language) sess.SetTheme(user.Theme) |