mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 13:00:52 +08:00
- Introduced `RegisterTokenStore` and `GetTokenStore` to centralize token store access. - Replaced direct file operations with a unified token persistence API. - Updated all components to use the shared token store for consistent behavior. - Improved logging for token save operations to include file paths.
32 lines
644 B
Go
32 lines
644 B
Go
package auth
|
|
|
|
import "sync"
|
|
|
|
var (
|
|
storeMu sync.RWMutex
|
|
registeredTokenStore TokenStore
|
|
)
|
|
|
|
// RegisterTokenStore sets the global token store used by the authentication helpers.
|
|
func RegisterTokenStore(store TokenStore) {
|
|
storeMu.Lock()
|
|
registeredTokenStore = store
|
|
storeMu.Unlock()
|
|
}
|
|
|
|
// GetTokenStore returns the globally registered token store.
|
|
func GetTokenStore() TokenStore {
|
|
storeMu.RLock()
|
|
s := registeredTokenStore
|
|
storeMu.RUnlock()
|
|
if s != nil {
|
|
return s
|
|
}
|
|
storeMu.Lock()
|
|
defer storeMu.Unlock()
|
|
if registeredTokenStore == nil {
|
|
registeredTokenStore = NewFileTokenStore()
|
|
}
|
|
return registeredTokenStore
|
|
}
|