| package auth | |
| import ( | |
| "sync" | |
| coreauth "github.com/router-for-me/CLIProxyAPI/v6/sdk/cliproxy/auth" | |
| ) | |
| var ( | |
| storeMu sync.RWMutex | |
| registeredStore coreauth.Store | |
| ) | |
| // RegisterTokenStore sets the global token store used by the authentication helpers. | |
| func RegisterTokenStore(store coreauth.Store) { | |
| storeMu.Lock() | |
| registeredStore = store | |
| storeMu.Unlock() | |
| } | |
| // GetTokenStore returns the globally registered token store. | |
| func GetTokenStore() coreauth.Store { | |
| storeMu.RLock() | |
| s := registeredStore | |
| storeMu.RUnlock() | |
| if s != nil { | |
| return s | |
| } | |
| storeMu.Lock() | |
| defer storeMu.Unlock() | |
| if registeredStore == nil { | |
| registeredStore = NewFileTokenStore() | |
| } | |
| return registeredStore | |
| } | |