Social login would be a very useful feature. I somewhere read that you are planning to implement it soon?
Depends on what you are asking. For somebody else, perhaps smaller scope would let them make some assumptions that would shave on number of edge cases and shorten time to delivery.
But if you are asking if that will make me get feature faster into Misago, then I am sorry but I don't cut corners like that, unless I know that use cases I'll be cutting are tiny portion of all possible use cases, and it'll wont result in additional support burden on me and answering additional questions like "you've did XYZ, why not ZVX? How do I get ZVX in? Why not support both?" and that kind of story ;) I'm making exceptions on this from time to time, but I don't fell like this is the case where exception would be acceptable.
Small dev update, as I've found time during holidays to work on social login and so far I have following things done:
I have the above working with GitHub. Sadly Facebook decided to go full-hostile on integrations devs and they don't support sending data to applications running on localhost or without HTTPS. But thats... fine. I've already got plenty of experience with it to know what's expected when it comes to their API.
As I've feared,
Python Social Auth's "batteries included" were unfit for use in internet forum, and I've had to write my own implementations for a plenty of things. This was mostly caused by following:
as username, and we need to convert it toRafalPiton` to be useable for Misago.
Python Social Authreturns are unfit for showing to the user and are not translateable, so I've had to create custom error handling step.
Here's how it looks like, just note that currently I've opted to don't use icons for social providers, this may change however in one of next releases:
The social login flow seems to be complete, however it lacks tests and extra handling in other parts of application (like user control panel requiring user to still provide password):
I'm hoping that in two weeks I'll wrap up the work on this feature and move on to bugfixes that I've also wanted to include in Misago 0.18