From 9b064b4f89ceecd6a959bc8b2b8d34b31e1f7816 Mon Sep 17 00:00:00 2001 From: Jun Nishimura Date: Sun, 6 Aug 2023 17:45:11 +0900 Subject: [PATCH] update auth (#34) --- auth/auth.go | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/auth/auth.go b/auth/auth.go index dbab9f6..16fb126 100644 --- a/auth/auth.go +++ b/auth/auth.go @@ -11,6 +11,7 @@ import ( spotifyauth "github.com/JunNishimura/spotify/v2/auth" "github.com/google/uuid" "github.com/pkg/browser" + "golang.org/x/oauth2" ) const ( @@ -68,8 +69,8 @@ func (a *Client) completeAuth(w http.ResponseWriter, r *http.Request) { log.Fatalf("state mismatch: got = %s, expected = %s\n", getState, a.state) } - if err := a.cfg.SetToken(token); err != nil { - log.Fatalf("fail to set token: %v", err) + if err := a.setToken(token); err != nil { + log.Fatal(err) } a.SpotifyChannel <- spotify.New(a.auth.Client(r.Context(), token)) @@ -80,3 +81,17 @@ func (a *Client) completeAuth(w http.ResponseWriter, r *http.Request) { } }() } + +func (a *Client) setToken(token *oauth2.Token) error { + if err := a.cfg.Set(config.AccessTokenKey, token.AccessToken); err != nil { + return fmt.Errorf("fail to set access token: %v", err) + } + if err := a.cfg.Set(config.RefreshTokenKey, token.RefreshToken); err != nil { + return fmt.Errorf("fail to set refresh token: %v", err) + } + if err := a.cfg.Set(config.ExpirationKey, token.Expiry.Unix()); err != nil { + return fmt.Errorf("fail to set expiration: %v", err) + } + + return nil +}