gausma / nodered-contrib-signal-client

Signal communicator client nodes for Node-RED
GNU General Public License v3.0
33 stars 13 forks source link

Registration-Error: Credentials are required to access this resource #29

Open jdelker opened 2 years ago

jdelker commented 2 years ago

I followed your registration procedure but got stuck on the final "register" action, when I receive the following error:

"Signal client error: {"name":"HTTPError","code":401,"response":"Credentials are required to access this resource."}"

These are the steps I performed:

  1. Created a new account configuration wiith a fixed-line phonenumber and a random password
  2. Gathered a captcha code as described and filled that into your example "request-voice" node.
  3. Deployed config and triggered the "requst-voice" node.
  4. Received automated voice call and noted the verification code.
  5. Filled in account and verification code into the "register" node.
  6. Deployed confg and triggered "register" node, which provided the error message above.

Did I miss anything, or is this a bug on client or service side?

jdelker commented 2 years ago

Nevermind, the procedure succeeded on another attempt with a more simple password. I assume that either the client or server had trouble with particular special chars contained in the password. After removing them (and shortened) the password, the registration performed without error.

markus-hi commented 2 years ago

The same problem here! Tried many times with simple password, but no success so far. Does somebody have an idea how to fix this problem?

cameo69 commented 2 years ago

The same problem here! Flow not working anymore since yesterday evening. When trying to reregister I get msg "Signal client error: {"name":"HTTPError","code":401,"response":"Credentials are required to access this resource."}" Did not change any settings, let alone the password. Version 2.4.2

Heiner629 commented 2 years ago

Same here. The modul stopped working on Friday. Trying to Re-Register the number again, same error. Version 2.4.2

bubi1311 commented 2 years ago

Same here. Module-Version 2.4.0. Created a new password, just numbers and letters. Length 8. Re-registered the number but got the same error message as @cameo69 described. I guess something is wrong with the used library https://github.com/gausma/libsignal-service-javascript. @gausma Do you have any clue what has changed? Does @signalapp changed something?

Heiner629 commented 2 years ago

The sending function stopped for me since friday 08/27/21. I did not change anything on an existing config, just using the sender module in node-red to send a message per day. On friday it stopped. Re-Registering is not possible, got the error-message from @cameo69. With a completly new fixed number, i could get the captcha, could receive the Code via phone. But if i try to register i get "Signal client error: {"name":"HTTPError","code":401,"response":"Credentials are required to access this resource."}"

bubi1311 commented 2 years ago

The sending function stopped for me since friday 08/27/21. I did not change anything on an existing config, just using the sender module in node-red to send a message per day. On friday it stopped. Re-Registering is not possible, got the error-message from @cameo69. With a completly new fixed number, i could get the captcha, could receive the Code via phone. But if i try to register i get "Signal client error: {"name":"HTTPError","code":401,"response":"Credentials are required to access this resource."}"

Yeah, that's also my problem.

staude666 commented 2 years ago

sending function stopped for me since friday 08/27/21. I did not change anything on an existing config, just using the sender module in node-red to send a message per day. On friday it stopped. Re-Registering is not possible, got the error-message from @cameo69. With a completly new fixed number, i could get the captcha, could receive the Code via phone. But if i try to register i get "Signal client error: {"name":"HTTPError","code":401,"response":"Credentials are required to access this resource."}"

I have the same Problem. Please help.

bubi1311 commented 2 years ago

So, it seems that the issue comes up with a call to the Signal-Server endpoint https://textsecure-service.whispersystems.org/v1/accounts/code/

The next step should be to figure out what changes to the @Signalapp code at this method have been made just before August 27th 2021.

Maybe I've found something: It seems that there have been some changes to the authorization at this endpoint. You can see it in the commit history (line 328/329) of service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java (Maybe the link directly displays it: [https://github.com/signalapp/Signal-Server/commit/d1735c7e57c4111516cbdc8a6ca69eaf73cf8290#diff-1930f0e12a3248859cbe444051589f7836a00e76b0247ce0ad5549fb8d8bfbb7](Diff of AccountController.java).

Maybe that's the solution but I think that it would be a good idea to analyze it more deeply than I can do. I'm not a (JS) developer so any help would be appreciated.

cameo69 commented 2 years ago

Because nodered-contrib-signal-client does not work for me for almost 2 weeks, I looked for an alternative. I used https://github.com/bbernhard/signal-cli-rest-api as my first replacement. Check out my example flow on flows.nodered.org.

Heiner629 commented 2 years ago

Perfect! Thanks a lot! I have only a few sending nodes, so I will send the JSON API HTTP Call directly from NodeRed. But the link to the container was the key. I tried to install signal-cli-rest-api directly on my server, but failed at the end on some lib dependencies. But the container runs perfect! Thanks cameo69!

ernie-sys commented 2 years ago

are there any solutions?

vore commented 2 years ago

Hello! Same problem for me. I get this message when trying to register: "Signal client error: {"name":"HTTPError","code":401,"response":"Credentials are required to access this resource."}" Is there any solution? Thanks!

JsBergbau commented 2 years ago

I'm using now signal-cli with this flow

[{"id":"e624eca0ac8c0afc","type":"inject","z":"ddd38a48.2e949","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"5","topic":"","payloadType":"date","x":90,"y":2800,"wires":[["72050444743009be"]]},{"id":"72050444743009be","type":"exec","z":"ddd38a48.2e949","command":"/home/pi/signal-cli-0.10.2/bin/signal-cli -a <Phonenumber> jsonRpc","addpay":"","append":"","useSpawn":"true","timer":"","winHide":false,"oldrc":false,"name":"","x":530,"y":2800,"wires":[["671468606f90b3df","5358d0962adf7f35"],["dc37056e8e0eac75"],[]]},{"id":"5358d0962adf7f35","type":"json","z":"ddd38a48.2e949","name":"","property":"payload","action":"","pretty":false,"x":990,"y":2780,"wires":[["c176b48e02a6cce3","e4ee88cd1830d841"]]},{"id":"e4ee88cd1830d841","type":"switch","z":"ddd38a48.2e949","name":"Only messages","property":"payload.params.envelope.dataMessage","propertyType":"msg","rules":[{"t":"nempty"}],"checkall":"true","repair":false,"outputs":1,"x":1160,"y":2780,"wires":[["035dc27777fbd0a5","d5262268.ad2528"]]}]

grafik

Note: signal-cli needs Java 17 wich is currently not available for Raspberry PI Zero W. For Java 17 I use Zulu https://www.azul.com/downloads/?package=jdk#download-openjdk Signal-cli is java and thus very resource intensive, virtual memory over 1100 MB (!) and about 112 MB resident memory. Thats almost the memory of the whole node-red process. There is also a node library https://github.com/signalapp/libsignal-client#node which seems to work without all the Java stuff and should be much more ressource efficient. Sadly there is currently no documentation available, otherwise I'd try to build based upon this a Node-RED node.

signal-cli only contains binaries for x86 or x64 cpus. You have to compile it for yourself or use my compiled version on Raspberry PI4, which should als work on Raspberry PI 3. Put / replace this file into signal-cli-0.10.2/lib signal-client-java-0.11.0.zip

This is for receiving only. Sending can also be done quite easily via the deamon mode and json requests, see https://github.com/AsamK/signal-cli/blob/master/man/signal-cli-jsonrpc.5.adoc

JsBergbau commented 2 years ago

OpenJDK 17 is now available for Raspberry PI Zero W, so this solution works now even on Raspberry PI Zero W. For OpenJDK 17, see https://github.com/JsBergbau/OpenJDK-Raspberry-Pi-Zero-W-armv6