Oauth2 Issues with Whoop

Describe the problem/error/question

I keep having to reconnect to my oauth2 credentials to whoop so the refresh token isn’t working for some reason. I’ve tried a number of things but was hoping someone here has an idea what I’m missing. It seems like oauth2 and refreshing is a common problem here. Thanks for any help in advance. For any of you experts out there here are the blurbs from whoop about authentication.

See screenshot below for my oauth2 setup. Everything works when I connect, I just can’t get it to stop expiring. I pulled out the the client ID for the screenshots, like I said it works it just won’t refresh.


What is the error message (if any)?

When it eventually times out I get “ERROR: Client authentication failed (e.g., unknown client, no client authentication included, or unsupported authentication method).”

{"status":"rejected","reason":{"body":{"error":"invalid_client","error_description":"Client authentication failed (e.g., unknown client, no client authentication included, or unsupported authentication method)","error_hint":"The OAuth 2.0 Client supports client authentication method \"client_secret_post\", but method \"client_secret_basic\" was requested. You must configure the OAuth 2.0 client's \"token_endpoint_auth_method\" value to accept \"client_secret_basic\".","status_code":401},"code":"EAUTH"}}

Information on your n8n setup

  • n8n version: 1.5.1
  • Database (default: SQLite): SQLite
  • Running n8n via (Docker, npm, n8n cloud, desktop app): docker via cloudron
  • Operating system: Ubuntu 22.04


Oh forgot to include the details for the node that is actually pulling, I don’t think I need to set anything here for the refresh tokens though(?). Thanks again for any help.

Hey @ericdrgn,

Welcome to the community :tada:

Looking at the Whoop docs it looks like you might need to add offline as a scope rather than an Auth URI Parameter. I cancelled my Whoop sub last year so I am not sure if my account still works to test it but that should be the missing piece.

That is something I had already tried as well. I changed it to the URI Parameter due to something I saw about Oauth2 around here but my first attempts were with it in the scope. To double check I would just need to put offline before the read scopes right? If that’s it then unfortunately that didn’t work either.

Hey @ericdrgn,

Yeah the docs would suggest you just add offline in the scopes field everything else just looks like standard oauth2 and should work like every other oauth2 credential we have.

I will see if my account is still active and see if I can get it to work.

Thank you for checking, I did just try with it in the scope again and it still needs manual authentication after an hour with the same error I posted earlier.