mirror of
https://github.com/SigNoz/signoz.git
synced 2026-02-28 03:02:25 +00:00
55 lines
1.9 KiB
Go
55 lines
1.9 KiB
Go
package session
|
|
|
|
import (
|
|
"context"
|
|
"net/http"
|
|
"net/url"
|
|
"time"
|
|
|
|
"github.com/SigNoz/signoz/pkg/types/authtypes"
|
|
"github.com/SigNoz/signoz/pkg/valuer"
|
|
)
|
|
|
|
type Module interface {
|
|
// Gets the session context for the user. The context contains information on what the user has to do in order to create a session.
|
|
GetSessionContext(ctx context.Context, email valuer.Email, siteURL *url.URL) (*authtypes.SessionContext, error)
|
|
|
|
// Create a session for a user using password authn provider.
|
|
CreatePasswordAuthNSession(ctx context.Context, authNProvider authtypes.AuthNProvider, email valuer.Email, password string, orgID valuer.UUID) (*authtypes.Token, error)
|
|
|
|
// Create a session for a user using callback authn providers.
|
|
CreateCallbackAuthNSession(ctx context.Context, authNProvider authtypes.AuthNProvider, values url.Values) (string, error)
|
|
|
|
// Rotate a token.
|
|
RotateSession(ctx context.Context, accessToken string, refreshToken string) (*authtypes.Token, error)
|
|
|
|
// Delete a session.
|
|
DeleteSession(ctx context.Context, accessToken string) error
|
|
|
|
// Get the rotation interval for the session.
|
|
GetRotationInterval(ctx context.Context) time.Duration
|
|
}
|
|
|
|
type Handler interface {
|
|
// Get the session context for the user.
|
|
GetSessionContext(http.ResponseWriter, *http.Request)
|
|
|
|
// Create a session for a user using email and password.
|
|
CreateSessionByEmailPassword(http.ResponseWriter, *http.Request)
|
|
|
|
// Create a session for a user using google callback.
|
|
CreateSessionByGoogleCallback(http.ResponseWriter, *http.Request)
|
|
|
|
// Create a session for a user using saml callback.
|
|
CreateSessionBySAMLCallback(http.ResponseWriter, *http.Request)
|
|
|
|
// Create a session for a user using oidc callback.
|
|
CreateSessionByOIDCCallback(http.ResponseWriter, *http.Request)
|
|
|
|
// Rotate a token.
|
|
RotateSession(http.ResponseWriter, *http.Request)
|
|
|
|
// Delete a session.
|
|
DeleteSession(http.ResponseWriter, *http.Request)
|
|
}
|