template-monorepo/internal/model/auth/domain/usecase/login_session.go

29 lines
767 B
Go
Raw Normal View History

package usecase
import (
"context"
"time"
)
// CreateLoginSessionRequest binds tenant/provider before OAuth login redirect.
type CreateLoginSessionRequest struct {
TenantID string
TenantSlug string
Provider string
RedirectURI string
TTL time.Duration
}
// LoginSessionView is returned to clients before OAuth login redirect.
type LoginSessionView struct {
SessionID string
ExpiresIn int
}
// LoginSessionUseCase manages social login sessions (no invite / registration metadata).
type LoginSessionUseCase interface {
Create(ctx context.Context, req *CreateLoginSessionRequest) (*LoginSessionView, error)
Get(ctx context.Context, sessionID string) (*CreateLoginSessionRequest, error)
Delete(ctx context.Context, sessionID string) error
}