RocketChat / Rocket.Chat

The communications platform that puts data protection first.
https://rocket.chat/
Other
39.88k stars 10.26k forks source link

Unable to log in with the Rocket.Chat Mac App #16656

Open rpgoldman opened 4 years ago

rpgoldman commented 4 years ago

Using RC 2.17.7 on Mac OS 10.15.3, I am unable to log in to my work RC server. I get "User not found or incorrect password." However, with the same user ID and pw I am able to log in from a web browser. Also, our sysadmin tells me that there are no logs on the server showing failed login attempts from me. So it seems like something is going wrong inside the app. Or perhaps there is some permissions error with MacOS and the error message is misleading?

I have rebooted, and removed and reinstalled RocketChat.app from the web site (not the App store).

I don't see any error messages in the console when searching for RocketChat (although I do see log entries for the app starting up on log in).

It seems quite possible that this is something wrong with my own usage or installation, since a colleague can use the App successfully against our server, but I don't know how to proceed to try to figure this out without some clue about what is going wrong.

ggazzo commented 4 years ago

are you sure you are trying to connect on your server and not on open.rocket.chat?

rpgoldman commented 4 years ago

@ggazzo Yes, I see my company's banner in the window when I open Rocket.Chat.

It occurred to me that the server config might be wrong, so I removed our server, and then re-added it, but I still get the same error.

rpgoldman commented 4 years ago

Is there any logging done by Rocket.Chat application?

If it helps, I can get into the JS console, and find the login button. If I bind it to btn and do btn.click() I get the behavior -- the pop up window showing the error message. Unfortunately, any errors seem to be swallowed, so all I see in the console is undefined.

Could I use this to gather more information?

gabriellsh commented 4 years ago

Are you sure the correct server URL was configured? That's really odd behaviour. You can open devTools inside the app and look at the console, see if you find anything.

rpgoldman commented 4 years ago

@gabriellsh Yes, I'm quite sure -- I was able to connect with the same URL (copy and paste) using a web browser.

I did open up the devTools, but I couldn't figure out how to get useful information out. What I think I should be doing is actuating the login button from inside the dev tools console (I did that), but it seems like this just throws into some callback that eats any error that might be happening.

Is there some function or method I could call from the dev tools to look for an error? I don't know how to get into the code that the login button press invokes.

rpgoldman commented 4 years ago

@ggazzo @gabriellsh -- I'm not sure I'm doing the right thing here, but I cracked open the dev tools, and set a break point in app.js inside handleLogin(). The break point is at the first line of the function, right after the function header.

When I press the Login button, I see the popup that tells me I am an unknown user, or have an incorrect password, but the handleLogin break point is not hit. This suggests to me that there's some false positive in some check that is done before trying to actually log in, and this would agree with the fact that our systems folks don't see any traffic from the app.

rpgoldman commented 4 years ago

Looks like the error signaling is here: https://github.com/RocketChat/Rocket.Chat/blob/9054f0dba996d3c2a653756542f374153443a670/app/ui-login/client/login/form.js#L77

Unfortunately, I'm not adept enough at using the dev tools to find this piece of the code in the dev tools. If you could help me do that, I could set a breakpoint there and might be able to give you a more precise bug report, or even a patch.

rpgoldman commented 4 years ago

@ggazzo @gabriellsh Is there any chance that this issue is happening to me because there is some character in my password that the client does not accept? That's the only thing I can think of, although as I said, I am able to log in using the web application: it's only the desktop that doesn't work.

Also, I have just updated to 2.17.9, and this issue persists. Again, if you could point me to where this failure occurs, I could use the development tools to try to identify the cause.

gabriellsh commented 4 years ago

Well, you can test your password here on https://open.rocket.chat/. Create an user and use the same username/pass that is in your server. Or maybe if you don't wan't to risk using your password for some reason, at least include the same characters that you think might be causing this issue. Or maybe even change your password on your server to something simpler, just for testing purposes.

As I said before, this is a really odd behaviour, specially because the Electron app doesn't really deal with the login screen (It is the same code that goes on the web, literally). Please, update us with the tests if possible.

Thanks!

rpgoldman commented 4 years ago

@gabriellsh Well, as I said, it would be very helpful to me if you could point me at location(s) in the source code where the login takes place. I have the debugging tools available, but finding the right places to breakpoint in this very large body of code was more than I could figure out. I found where the error message was being emitted, but by that point all the useful information about what had gone wrong in authentication was lost, and the callback structures were more than my poor brain could figure out.

gabriellsh commented 4 years ago

Actually the login itself is handled by Meteor itself (Meteor.loginWithPassword), but the code snippet you mentioned is where the info is collected and treated to be sent to the Server. You could just inspect variables and see if their values match what you typed.

But again, if you suspect a complex password/username is the problem, the easiest way to test this would be to just change it or create a test account on your server. You could try logging in on another computer to be sure. The idea is to eliminate every variable until you reach the problem.

github-actions[bot] commented 4 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

rpgoldman commented 3 years ago

@gabriellsh I found out what was the problem! The problem was that the password I was using (based on an IPA account), had expired. But ... nothing except Rocket Chat apparently checked this!

Interestingly, this did not stop me from logging in using the web client, only the desktop client.

Maybe that can help figure out why this happened?