MagicMirror Forum

    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • Donate
    • Discord

    SOLVED MMM-Hue CORS Policy Issue

    Troubleshooting
    7
    28
    1667
    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.
    • mumblebaj
      mumblebaj Project Sponsor last edited by

      I seem to be having an issue after updating to 2.18 yesterday. MMM-Hue seems not to be working anymore. I get the following error:

      Access to XMLHttpRequest at 'http://bridgeip/api/user/groups' from origin 'http://0.0.0.0:8080' has been blocked by CORS policy: The request client is not a secure context and the resource is in more-private address space `private`.
      

      Has anybody else had the same issue after updating? There are no errors in the logs. The above error is from the Developer Console.

      karsten13 Fozi 2 Replies Last reply Reply Quote 0
      • karsten13
        karsten13 @mumblebaj last edited by

        @mumblebaj

        you can test the following, I couldn’t test this completely but the cors error was gone in my tests.

        First yo need to create own certs, go into the config folder of mm (same folder where config.js is located) and run this command:

        openssl req -newkey rsa:4096 \
                    -x509 \
                    -sha256 \
                    -days 3650 \
                    -nodes \
                    -out example.crt \
                    -keyout example.key \
                    -subj "/C=DE/ST=Hessen/L=Frankfurt/O=MagicMirror/OU=MM/CN=www.example.com"
        

        Then edit your config.js and add the following lines under the line with var config = {

        	electronOptions: {
        		webPreferences: {
        			webSecurity: false
        		}
        	},
        	useHttps: true,
        	httpsPrivateKey: "config/example.key",
        	httpsCertificate: "config/example.crt",
        

        (Re)Start mm and test if MMM-Hue works now (there will still be a “mixed content” warning).

        mumblebaj Fozi 2 Replies Last reply Reply Quote 1
        • karsten13
          karsten13 @mumblebaj last edited by

          @mumblebaj

          This could be caused by the new electron version if you are running this on a raspberry pi.

          If so you could test adding electronOptions in your config.js like:

          let config = {
          	electronOptions: {
                          webPreferences: {
                                  webSecurity: false
                          }
                  },
          	address: "localhost", 
          	port: 8080,
          
          mumblebaj 1 Reply Last reply Reply Quote 0
          • Fozi
            Fozi Project Sponsor @mumblebaj last edited by

            @mumblebaj I have the same issue with the same error, but with MMM-Homematic since the update to MM 2.18. MM cannot connect to my CCU2 controller to get the device statuses.
            @karsten13 your proposal unfortunately didn’t work 😞 But thanks anyway!

            HowTo: Replace PIR Sensor with a RCWL-0516 Microwave Sensor

            karsten13 1 Reply Last reply Reply Quote 0
            • karsten13
              karsten13 @Fozi last edited by

              @fozi I have no test setup so this is difficult without …

              Fozi 1 Reply Last reply Reply Quote 0
              • Fozi
                Fozi Project Sponsor @karsten13 last edited by

                @karsten13 No worries! I just wanted to let you (and others) know that the config entry does not solve the issue.
                I made a little research around CORS and -at least for me- it doesn’t seem to be trivial to configure electron in a way that specific origins are allowed without disabling the CORS policy completely.

                Anyone around with more knowledge?

                HowTo: Replace PIR Sensor with a RCWL-0516 Microwave Sensor

                karsten13 1 Reply Last reply Reply Quote 0
                • karsten13
                  karsten13 @Fozi last edited by

                  @fozi

                  found this one https://pratikpc.medium.com/bypassing-cors-with-electron-ab7eaf331605 which could be tested in js/electron.js.

                  1 Reply Last reply Reply Quote 0
                  • mumblebaj
                    mumblebaj Project Sponsor @karsten13 last edited by

                    Thanks @karsten13 , seems like it does not work as mentioned below by @Fozi . Seems like the modules uses jQuery and does a call to the bridge to get the data. Seems like I need to log an issue on Github for the module but it has not been touched in the last 3 to 4 years. I will fork it and see if I can make some changes to get it working. The last suggestion you made below seems like code changes module side so I will see what I can do to change it from jQuery to something that would work. Thanks for the replies.

                    karsten13 1 Reply Last reply Reply Quote 0
                    • karsten13
                      karsten13 @mumblebaj last edited by

                      @mumblebaj

                      you can test the following, I couldn’t test this completely but the cors error was gone in my tests.

                      First yo need to create own certs, go into the config folder of mm (same folder where config.js is located) and run this command:

                      openssl req -newkey rsa:4096 \
                                  -x509 \
                                  -sha256 \
                                  -days 3650 \
                                  -nodes \
                                  -out example.crt \
                                  -keyout example.key \
                                  -subj "/C=DE/ST=Hessen/L=Frankfurt/O=MagicMirror/OU=MM/CN=www.example.com"
                      

                      Then edit your config.js and add the following lines under the line with var config = {

                      	electronOptions: {
                      		webPreferences: {
                      			webSecurity: false
                      		}
                      	},
                      	useHttps: true,
                      	httpsPrivateKey: "config/example.key",
                      	httpsCertificate: "config/example.crt",
                      

                      (Re)Start mm and test if MMM-Hue works now (there will still be a “mixed content” warning).

                      mumblebaj Fozi 2 Replies Last reply Reply Quote 1
                      • mumblebaj
                        mumblebaj Project Sponsor @karsten13 last edited by

                        @karsten13 Awesome. That worked. Much appreciated for the assist.

                        1 Reply Last reply Reply Quote 0
                        • Fozi
                          Fozi Project Sponsor @karsten13 last edited by

                          @karsten13 You are a genius! That worked for me, too! Thanks so much!

                          HowTo: Replace PIR Sensor with a RCWL-0516 Microwave Sensor

                          karsten13 1 Reply Last reply Reply Quote 0
                          • 1
                          • 2
                          • 3
                          • 1 / 3
                          • First post
                            Last post
                          Enjoying MagicMirror? Please consider a donation!
                          MagicMirror created by Michael Teeuw.
                          Forum managed by Paul-Vincent Roll and Rodrigo Ramírez Norambuena.
                          This forum is using NodeBB as its core | Contributors
                          Contact | Privacy Policy