This commit is contained in:
parent
c4951ed359
commit
c2e098fb10
|
@ -11,6 +11,7 @@ import (
|
||||||
sessionmiddleware "git.maronato.dev/maronato/goshort/internal/server/middleware/session"
|
sessionmiddleware "git.maronato.dev/maronato/goshort/internal/server/middleware/session"
|
||||||
userservice "git.maronato.dev/maronato/goshort/internal/service/user"
|
userservice "git.maronato.dev/maronato/goshort/internal/service/user"
|
||||||
"git.maronato.dev/maronato/goshort/internal/storage/models"
|
"git.maronato.dev/maronato/goshort/internal/storage/models"
|
||||||
|
"git.maronato.dev/maronato/goshort/internal/util/logging"
|
||||||
"github.com/alexedwards/scs/v2"
|
"github.com/alexedwards/scs/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -88,8 +89,14 @@ func UpdateSession(ctx context.Context, r *http.Request) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func LoginUser(ctx context.Context, user *models.User, r *http.Request) {
|
func LoginUser(ctx context.Context, user *models.User, r *http.Request) {
|
||||||
|
l := logging.FromCtx(ctx)
|
||||||
|
|
||||||
manager := sessionmiddleware.SessionManagerFromCtx(ctx)
|
manager := sessionmiddleware.SessionManagerFromCtx(ctx)
|
||||||
|
|
||||||
|
l.DebugContext(ctx, "got session manager", "manager", manager)
|
||||||
|
|
||||||
|
l.DebugContext(ctx, "Logging in user", "username", user.Username, "sessionToken", manager.Token(ctx))
|
||||||
|
|
||||||
manager.Put(ctx, sessionUserKey, user.Username)
|
manager.Put(ctx, sessionUserKey, user.Username)
|
||||||
manager.Put(ctx, sessionCreatedAtKey, time.Now().Format(time.RFC3339))
|
manager.Put(ctx, sessionCreatedAtKey, time.Now().Format(time.RFC3339))
|
||||||
// Update session
|
// Update session
|
||||||
|
|
|
@ -43,7 +43,7 @@ func SessionManager(cfg *config.Config) func(http.Handler) http.Handler {
|
||||||
|
|
||||||
func SessionManagerFromCtx(ctx context.Context) *scs.SessionManager {
|
func SessionManagerFromCtx(ctx context.Context) *scs.SessionManager {
|
||||||
sessionManager, err := ctx.Value(sessionContextKey{}).(*scs.SessionManager)
|
sessionManager, err := ctx.Value(sessionContextKey{}).(*scs.SessionManager)
|
||||||
if !err {
|
if !err || sessionManager == nil {
|
||||||
// This should never happen.
|
// This should never happen.
|
||||||
panic("session manager not found in context")
|
panic("session manager not found in context")
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,6 +118,8 @@ func (h *OIDCHandler) Callback(w http.ResponseWriter, r *http.Request) {
|
||||||
// Now that user is guaranteed to exist, log them in
|
// Now that user is guaranteed to exist, log them in
|
||||||
span.AddEvent("user found or created")
|
span.AddEvent("user found or created")
|
||||||
|
|
||||||
|
l.DebugContext(ctx, "logging in user", "user", user, "email", userInfo.Email, "username", user.Username)
|
||||||
|
|
||||||
authmiddleware.LoginUser(ctx, user, r)
|
authmiddleware.LoginUser(ctx, user, r)
|
||||||
|
|
||||||
span.AddEvent("logged in user")
|
span.AddEvent("logged in user")
|
||||||
|
|
Loading…
Reference in New Issue
Block a user