• Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
MagicMirror Forum
  • Recent
  • Tags
  • Unsolved
  • Solved
  • MagicMirror² Repository
  • Documentation
  • 3rd-Party-Modules
  • Donate
  • Discord
  • Register
  • Login
A New Chapter for MagicMirror: The Community Takes the Lead
Read the statement by Michael Teeuw here.

MMM-Strava ID Unauthorized

Scheduled Pinned Locked Moved Health
17 Posts 4 Posters 4.0k Views 4 Watching
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • B Offline
    BerkSmash1984 @BerkSmash1984
    last edited by BerkSmash1984 May 2, 2022, 7:16 PM May 2, 2022, 6:54 PM

    @mumblebaj I did attempt a reinstall of the MMM-Strava module but can certainly do it again. Is best method to rm-rf the MMM-Strava modiue folder and then redo the steps listed in the Github for MMM-Strava?

    1 Reply Last reply Reply Quote 0
    • S Offline
      sdetweil
      last edited by May 2, 2022, 7:02 PM

      @BerkSmash1984 u can edit your posts… don’t have to leave pad text, wrong info, bad tag…

      Sam

      How to add modules

      learning how to use browser developers window for css changes

      B 1 Reply Last reply May 2, 2022, 7:16 PM Reply Quote 0
      • B Offline
        BerkSmash1984 @sdetweil
        last edited by May 2, 2022, 7:16 PM

        @sdetweil my bad, thanks! I corrected my post

        S 1 Reply Last reply May 2, 2022, 7:17 PM Reply Quote 1
        • S Offline
          sdetweil @BerkSmash1984
          last edited by May 2, 2022, 7:17 PM

          @BerkSmash1984 not bad, maybe you didn’t know. lol

          Sam

          How to add modules

          learning how to use browser developers window for css changes

          1 Reply Last reply Reply Quote 0
          • B Offline
            BerkSmash1984
            last edited by May 3, 2022, 2:38 PM

            @mumblebaj just removed the MMM-Strava module and installed from scratch. Still seeing the same issue. Would you by chance be able to do any direct troubleshooting with me? I am on discord in the MM channel and can dm you in there, if you have any free time at any point.

            Note: when I click the authorize button a the Stava auth site after being redirected there from my MM on the RPI, in Electron, I see this generated:

            [03.05.2022 10:13.13.537] [ERROR] Whoops! There was an uncaught exception…
            [03.05.2022 10:13.13.538] [ERROR] Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
            at new NodeError (node:internal/errors:371:5)
            at ServerResponse.setHeader (node:_http_outgoing:576:11)
            at ServerResponse.header (/home/jberk1984/MagicMirror/node_modules/express/lib/response.js:776:10)
            at ServerResponse.location (/home/jberk1984/MagicMirror/node_modules/express/lib/response.js:893:15)
            at ServerResponse.redirect (/home/jberk1984/MagicMirror/node_modules/express/lib/response.js:931:18)
            at /home/jberk1984/MagicMirror/modules/MMM-Strava/node_helper.js:185:10
            at /home/jberk1984/MagicMirror/modules/MMM-Strava/node_helper.js:451:5
            at node:fs:2122:7
            at FSReqCallback.oncomplete (node:fs:188:23) {
            code: ‘ERR_HTTP_HEADERS_SENT’

            So the issue seems to be whatever is causing that. I never do see the token.js being generated after clicking the authorize button. My client and secret ID are correct in my config.js file (can’t tell you how many times I have checked to make sure)

            S 1 Reply Last reply May 3, 2022, 3:47 PM Reply Quote 0
            • S Offline
              sdetweil @BerkSmash1984
              last edited by sdetweil May 3, 2022, 3:47 PM May 3, 2022, 3:47 PM

              @BerkSmash1984 said in MMM-Strava ID Unauthorized:

              Cannot set headers after they are sent to the client

              so, this error is typically caused by some code doing two sends for an incoming request

              the module sets up a little server to receive and does a redirect response…

              but this could be an async problem
              start sending one response, continue while it runs and then fall into another send… oops…

              I only made a cursory look at the code. i have done similar things in some of my coding here and on other platforms.

              I don’t ‘see’ it, but there is a library in there too

              this says it is handling a callback on request complete,

              line 185 is in the handling of the token auth . but the stravea lib is calling back into the function (function (err, payload, limits) at line 176
              so the node_helper called strava, who called us back at the function on line 185 ( (err, data) => { (err, data) => { ) which does a redirect… WHILE the strava request to get the auth token handler is still active…

              			strava.oauth.getToken(authCode, function (err, payload, limits) {
              				if (err) {
              					console.error(err);
              					res.redirect(`/${self.name}/auth/?error=${err}`);
              					return;
              				}
              				// Store tokens
              				self.saveToken(clientId, payload.body, (err, data) => {    // line 185
              					// redirect route
              					res.redirect(`/${self.name}/auth/?status=success`);
              				});
              			});
              

              line 451, is in the end of the saveFile() function, supposedly to save the tokens.json

              	saveToken: function (clientId, token, cb) {
              		var self = this;
              		this.readTokens();
              		// No token for clientId - delete existing
              		if (clientId in this.tokens && !token) {
              			delete this.tokens[clientId];
              		}
              		// No clientId in tokens - create stub
              		if (!(clientId in this.tokens) && token) {
              			this.tokens[clientId] = {};
              		}
              		// Add token for client
              		if (token) {
              			this.tokens[clientId].token = token;
              		}
              		// Save tokens to file
              		var json = JSON.stringify(this.tokens, null, 2);
              		fs.writeFile(this.tokensFile, json, "utf8", function (error) {
              			if (error && cb) {
              				cb(error);
              			}
              			if (cb) {
              				cb(null, self.tokens);  // line 451  --- this calls back into the  ( (err, data) =>)  function
              			}
              		})
              

              at FSReqCallback.oncomplete (node:fs:188:23) {

              Sam

              How to add modules

              learning how to use browser developers window for css changes

              1 Reply Last reply Reply Quote 0
              • R Offline
                rmonteroc
                last edited by Sep 20, 2022, 9:44 PM

                @BerkSmash1984 did you ever fixed this issue?

                I just had the same issue, and it turns out it was a permissions issue in the MagicMirror folder, I changed the permissions of the folder and re-authorized, it’s now working.

                Best regards

                1 Reply Last reply Reply Quote 0
                • 1
                • 2
                • 2 / 2
                • First post
                  Last post
                Enjoying MagicMirror? Please consider a donation!
                MagicMirror created by Michael Teeuw.
                Forum managed by Sam, technical setup by Karsten.
                This forum is using NodeBB as its core | Contributors
                Contact | Privacy Policy