Custom OAuth2 TokenSource to persist refreshed tokens in database

This commit is contained in:
Philipp Wolfer 2023-11-22 17:15:46 +01:00
parent 4a9f26d9db
commit e29d8e2a63
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
8 changed files with 92 additions and 39 deletions

View file

@ -49,21 +49,11 @@ var lovesCmd = &cobra.Command{
cobra.CheckErr(err)
// Authenticate backends, if needed
token, err := db.GetOAuth2Token(sourceName)
_, err = backends.Authenticate(sourceName, exportBackend, db, viper.GetViper())
cobra.CheckErr(err)
auth, err := backends.Authenticate(exportBackend, token, viper.GetViper())
cobra.CheckErr(err)
if auth {
db.SetOAuth2Token(sourceName, token)
}
token, err = db.GetOAuth2Token(targetName)
_, err = backends.Authenticate(targetName, importBackend, db, viper.GetViper())
cobra.CheckErr(err)
auth, err = backends.Authenticate(importBackend, token, viper.GetViper())
cobra.CheckErr(err)
if auth {
defer db.SetOAuth2Token(targetName, token)
}
// Read timestamp
timestamp := time.Unix(getInt64FromFlag(cmd, "timestamp"), 0)