Add token auth
This commit is contained in:
13
login.go
13
login.go
@ -8,24 +8,31 @@ import (
|
|||||||
"golang.org/x/oauth2"
|
"golang.org/x/oauth2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
func noDevice(ctx context.Context, devices []tesla.Device) (d tesla.Device, passcode string, err error) {
|
func noDevice(ctx context.Context, devices []tesla.Device) (d tesla.Device, passcode string, err error) {
|
||||||
return tesla.Device{}, "", nil
|
return tesla.Device{}, "", nil
|
||||||
}
|
}
|
||||||
func login(ctx context.Context, username string, password string, tok string) (string, error) {
|
func login(ctx context.Context, username string, password string, tok string) (string, error) {
|
||||||
client, err := tesla.NewClient(
|
var client *tesla.Client
|
||||||
|
var err error
|
||||||
|
if tok != "" {
|
||||||
|
client, err = tesla.NewClient(
|
||||||
ctx,
|
ctx,
|
||||||
tesla.WithMFAHandler(noDevice),
|
tesla.WithMFAHandler(noDevice),
|
||||||
tesla.WithToken(&oauth2.Token{
|
tesla.WithToken(&oauth2.Token{
|
||||||
RefreshToken: tok,
|
RefreshToken: tok,
|
||||||
}),
|
}),
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
client, err = tesla.NewClient(
|
||||||
|
ctx,
|
||||||
|
tesla.WithMFAHandler(noDevice),
|
||||||
tesla.WithCredentials(username, password),
|
tesla.WithCredentials(username, password),
|
||||||
)
|
)
|
||||||
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.LogErrorType(err)
|
log.LogErrorType(err)
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
t, err := client.Token()
|
t, err := client.Token()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.LogErrorType(err)
|
log.LogErrorType(err)
|
||||||
|
|||||||
Reference in New Issue
Block a user