mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
- Replaced `TokenRecord` with `coreauth.Auth` for centralized and consistent authentication data structures. - Migrated `TokenStore` interface to `coreauth.Store` for alignment with core CLIProxy authentication. - Updated related login methods, token persistence logic, and file storage handling to use the new `coreauth.Auth` model.
31 lines
899 B
Go
31 lines
899 B
Go
package auth
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/router-for-me/CLIProxyAPI/v6/internal/config"
|
|
coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth"
|
|
)
|
|
|
|
// GeminiWebAuthenticator provides a minimal wrapper so core components can treat
|
|
// Gemini Web credentials via the shared Authenticator contract.
|
|
type GeminiWebAuthenticator struct{}
|
|
|
|
func NewGeminiWebAuthenticator() *GeminiWebAuthenticator { return &GeminiWebAuthenticator{} }
|
|
|
|
func (a *GeminiWebAuthenticator) Provider() string { return "gemini-web" }
|
|
|
|
func (a *GeminiWebAuthenticator) Login(ctx context.Context, cfg *config.Config, opts *LoginOptions) (*coreauth.Auth, error) {
|
|
_ = ctx
|
|
_ = cfg
|
|
_ = opts
|
|
return nil, fmt.Errorf("gemini-web authenticator does not support scripted login; use CLI --gemini-web-auth")
|
|
}
|
|
|
|
func (a *GeminiWebAuthenticator) RefreshLead() *time.Duration {
|
|
d := time.Hour
|
|
return &d
|
|
}
|