29 lines
767 B
Go
29 lines
767 B
Go
|
|
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
|
||
|
|
}
|