feat: add token file and env Login
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"os"
|
||||
)
|
||||
|
||||
// Login authenticates to Robinhood Agentic MCP and writes tokens.
|
||||
// Prefers ROBINHOOD_ACCESS_TOKEN when set; otherwise runs a browser OAuth dance.
|
||||
// Returns the Agentic account number when it can be discovered.
|
||||
func Login(ctx context.Context, cfg Config) (accountID string, err error) {
|
||||
if err := ctx.Err(); err != nil {
|
||||
return "", err
|
||||
}
|
||||
cfg = cfg.WithDefaults()
|
||||
if cfg.TokenFile == "" {
|
||||
return "", fmt.Errorf("login: missing TokenFile")
|
||||
}
|
||||
if tok := os.Getenv("ROBINHOOD_ACCESS_TOKEN"); tok != "" {
|
||||
if err := WriteTokens(cfg.TokenFile, tok, os.Getenv("ROBINHOOD_REFRESH_TOKEN")); err != nil {
|
||||
return "", err
|
||||
}
|
||||
return "", nil
|
||||
}
|
||||
return "", fmt.Errorf("login: no ROBINHOOD_ACCESS_TOKEN and oauth not wired")
|
||||
}
|
||||
Reference in New Issue
Block a user