From 0f914d8aa09ba30415931367043dab74d29022bb Mon Sep 17 00:00:00 2001 From: William Carroll Date: Sun, 9 Feb 2020 13:51:45 +0000 Subject: Read tokens from store when server starts Attempting to read the persisted tokens from the key-value store when the server begins. The server currently fails when those values are empty. TODO - Consider adding logic for knowing if the cached tokens are expired and prompt the user to reauthorize the client using a web browser. --- monzo_ynab/tokens.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'monzo_ynab') diff --git a/monzo_ynab/tokens.go b/monzo_ynab/tokens.go index 47e991e56132..4617595bf55a 100644 --- a/monzo_ynab/tokens.go +++ b/monzo_ynab/tokens.go @@ -16,6 +16,7 @@ import ( "net/url" "os" "time" + "kv" ) //////////////////////////////////////////////////////////////////////////////// @@ -70,8 +71,6 @@ var chans = &channels{ var ( monzoClientId = os.Getenv("monzo_client_id") monzoClientSecret = os.Getenv("monzo_client_secret") - cachedAccessToken = os.Getenv("monzo_cached_access_token") - cachedRefreshToken = os.Getenv("monzo_cached_access_token") ) //////////////////////////////////////////////////////////////////////////////// @@ -124,9 +123,21 @@ func refreshTokens(refreshToken string) (string, string) { //////////////////////////////////////////////////////////////////////////////// func main() { + // Retrieve cached tokens from store. + accessToken := fmt.Sprintf("%v", kv.Get("monzoAccessToken")) + refreshToken := fmt.Sprintf("%v", kv.Get("monzoRefreshToken")) + + log.Println("Attempting to retrieve cached credentials...") + log.Printf("Access token: %s\n", accessToken) + log.Printf("Refresh token: %s\n", refreshToken) + + if accessToken == "" || refreshToken == "" { + log.Fatal("Cannot start server without access or refresh tokens.") + } + // Manage application state. go func() { - state := &state{cachedAccessToken, cachedRefreshToken} + state := &state{accessToken, refreshToken} for { select { case msg := <-chans.reads: -- cgit 1.4.1