It is now possible to sign up for SteemWatch using Reddit so that people that created their Steemit accounts using Reddit can do the same for SteemWatch.
How It All Happened
It all started this morning when I was like yeah, let's just do Reddit quickly. Hahahah, how wrong I was :-)
When doing OAuth2, you basically redirect the user to the login provider, where they authenticate. Then you get a code that you exchange for an access token that you can use to access Reddit API on behalf of the authenticated user.
The funny part is, to get the access token you have to send an HTTP request. Nothing too amazing. The cool part is that Reddit is limiting HTTP requests by User-Agent
HTTP header, so any common library being used by multiple people is basically blocked. You need to set your own unique string or your OAuth request.
But of course, nobody wants to be sending these HTTP requests manually. There are libraries for OAuth2! Well, but they don't allow you to set custom User-Agent
header for the request, which means, yeah, that you will end up actually implementing OAuth2 yourself using raw HTTP requests. Totally not cool.
If that is not enough, when you get the user profile from Reddit, the verified email address is not there. Reddit just decided to not give it out, although Facebook, Google, GitHub and other do that. And of course, I based the user identification on email addresses. Which meant that I had to extend the authentication framework in SteemWatch. Not cool, again.
Bottom Line
You can either use Reddit XOR any of the remaining providers. When you use Facebook and then Google and the email addresses for these accounts are the same, SteemWatch will find the same user. But there is no email address for Reddit. So using Reddit and then using Facebook will log you into different SteemWatch accounts.
I might fix this in the future, but it is not going to be that trivial.
If you are masochistic, feel free to check the implementation.