@@ -155,6 +155,11 @@ func (auth *RenkuApiAuth) saveAccessTokenToKeyring() (err error) {
155155 return keyring .Set (keyringService , kUser , auth .accessToken )
156156}
157157
158+ func (auth * RenkuApiAuth ) deleteAccessTokenFromKeyring () (err error ) {
159+ kUser := fmt .Sprintf ("%s:%s" , auth .getKeyringUserPrefix (), "access_token" )
160+ return keyring .Delete (keyringService , kUser )
161+ }
162+
158163func (auth * RenkuApiAuth ) getRefreshTokenFromKeyring () (token string , err error ) {
159164 kUser := fmt .Sprintf ("%s:%s" , auth .getKeyringUserPrefix (), "refresh_token" )
160165 return keyring .Get (keyringService , kUser )
@@ -168,6 +173,11 @@ func (auth *RenkuApiAuth) saveRefreshTokenToKeyring() (err error) {
168173 return keyring .Set (keyringService , kUser , auth .refreshToken )
169174}
170175
176+ func (auth * RenkuApiAuth ) deleteRefreshTokenFromKeyring () (err error ) {
177+ kUser := fmt .Sprintf ("%s:%s" , auth .getKeyringUserPrefix (), "refresh_token" )
178+ return keyring .Delete (keyringService , kUser )
179+ }
180+
171181func (auth * RenkuApiAuth ) getKeyringUserPrefix () string {
172182 return fmt .Sprintf ("rdu:%s" , auth .baseURL .String ())
173183}
@@ -475,3 +485,20 @@ func (auth *RenkuApiAuth) postRefeshToken(ctx context.Context, refreshToken stri
475485 }
476486 return result , nil
477487}
488+
489+ func (auth * RenkuApiAuth ) Logout (ctx context.Context ) error {
490+ err1 := auth .deleteAccessTokenFromKeyring ()
491+ err2 := auth .deleteRefreshTokenFromKeyring ()
492+ if err1 != nil && err2 != nil {
493+ return fmt .Errorf ("got errors: %w and %w" , err1 , err2 )
494+ }
495+ if err1 != nil {
496+ return err1
497+ }
498+ return err2
499+ }
500+
501+ func LogoutAll (ctx context.Context ) error {
502+ return keyring .DeleteAll (keyringService )
503+
504+ }
0 commit comments