Adding Federated Login(OAuth2) Support

OAuth is an open standard for access delegation, commonly used as a way for Internet users to grant websites or applications access to their information on other websites but without giving them the passwords.

Whenever a user logs in using his Google, Facebook, GitHub (or any other site) account, he sees a popup as this one-

new-auth-2.png
Once the user grants the permissions, he can log in via his external account on the client app in future (without any other authentication). If you’re interested in the working of OAuth2, you can read here. And if you’re really, really interested in going into more depth, refer this.
I’ve been working on implementing OAuth2 in Ruqola [Link to code]. But sadly, our backend server, the Rocket.Chat server, does not support Realtime OAuth login API. Rocket.Chat doc for OAuth is not updated and thus I spent quite some time trying to implement it. Talking to a Rocket.Chat team member, I got to know this functionality is currently not available. Though I’ve created a support request for it at the Rocket.Chat GitHub, but it would take time to process and implement.

So for now, our backend is complete(well, except OAuth) and it’s time to move to the UI. I’m excited to be working on the UI as using QML for UI will be fun. Also, we’ll also be moving Ruqola to mobile soon!

If you’d like to work on Ruqola (or contribute to WikiToLearn in general), talk to us, or just hangout and chill, meet WikiToLearn people at the annual world summit of KDE, Akademy, from the 22.07.2017 – 27.07.2017! 🙂